Goals of the week
-
Solve Asynspinner issue in ROS2 to complete camviz
-
Refactor carviz
Update:
Turtlebot is not ready for dashing yet. Updates on Update turtlebot3 to sync ROS2 Dashing
So, we don’t have a mobile base robotics platform right now with both ROS1 And ROS2 support.
Carviz current code architecture
To work into a big complicated tool it is better to get a simple flow of components. Here, I created one from present code.
Most complicated part is the comm library which has to be changed with ros-ros2 interface. To maintain simplicity I have created the flow of all include and source files in comm library which will be used by carviz OR ANY OTHER APPLICATION IN JDEROBOT!!
Rebuilding comm library for ROS1-ROS2
- Last week I replaced
comm::Communicator* jdrc
for passing arguments from configuration file toint argc, char** argv, std::string nodeName, std::string topic
It was working for camviz as it was comparatively an easier tool but carviz is little complex so it would be better to keep the earlier version and create a neww class forCommunicator* jdrc
without using ICE and COMM library to support ROS and ROS2.
Comparison of yaml file in camviz vs carviz:
Simpler yaml file in camviz faciliated easy usage of yaml file without the need of comm::Communicator* jdrc
. But it would create problems or will be a dirty implementation for bigger tool like carviz.
Camviz.yaml
Server: 2 # Deactivate, 1: ROS , 2: ROS2
Proxy: "cameraA:tcp -h localhost -p 9999"
Format: RGB8
Topic: "/usb_cam/image_raw"
Name: cameraA
Fps: 30
NodeName: camViz
Carviz.yaml
Motors:
Server: 2 # 0 -> Deactivate, 1 -> Ice , 2 -> ROS
Proxy: "Motors:default -h localhost -p 9999"
Topic: "/mobile_base/commands/velocity"
Name: carVizMotors
maxV: 3
maxW: 0.7
Camera1:
Server: 2 # 0 -> Deactivate, 1 -> Ice , 2 -> ROS
Proxy: "CameraL:default -h localhost -p 9001"
Format: RGB8
Topic: "/camera/rgb/image_raw"
Name: carVizCamera1
Camera2:
Server: 2 # 0 -> Deactivate, 1 -> Ice , 2 -> ROS
Proxy: "CameraR:default -h localhost -p 9001"
Format: RGB8
Topic: "/camera/rgb/image_raw"
Name: carVizCamera2
Pose3D:
Server: 2 # 0 -> Deactivate, 1 -> Ice , 2 -> ROS
Proxy: "Pose3D:default -h localhost -p 9001"
Topic: "/odom"
Name: carVizPose3d
Laser:
Server: 2 # 0 -> Deactivate, 1 -> Ice , 2 -> ROS
Proxy: "Laser:default -h localhost -p 9001"
Topic: "/scan"
Name: carVizLaser
Vmax: 3
Wmax: 0.7
NodeName: carViz