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* jdrcfor passing arguments from configuration file toint argc, char** argv, std::string nodeName, std::string topicIt 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* jdrcwithout 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