[Unitree Go1] Point Cloud to Image

Dear Sohail,

How can I have access to 2d images from Point Cloud? There is a topic called /camera1/point_cloud_face, which publishes depth cloud. I want to know how I can convert it into an image.

Kind regards,
Amir

Dear @Amir_Mahdi,

The /camera should be publishing the image topic as well. Please execute the command:

rostopic list

and search for the key word with something along the lines /camera1/data. You can visualize this in RVIZ directly and/or if you require you can subscribe to the node via cpp or python to get the image. You do not need to convert the point cloud to image as it shold already be published. If you cannot find the image being published whatsoever, then the driver running in GO1 for the camera must have a parameter with image publishing set to false or disabled. Simply modify the launch file or parameter file to enable the image stream.

Dear Sohail,

Thank you for your email.
I connected via wifi to the robot. There is no topic as you mentioned:
/camera1/point_cloud_face
/camera1/range_visual_face
/camera2/point_cloud_chin
/camera3/range_visual_left
/camera4/point_cloud_right
/camera4/range_visual_right
/camera5/point_cloud_rearDown
/cmd_odom
/cmd_vel
/cmd_vel_2
/joint_states
/lcm_node/obs_env
/lcm_node/ultrasonic_env
/map
/move_base/cancel
/move_base/feedback
/move_base/goal
/move_base/result
/move_base/status
/move_base_simple/goal
/odom
/pointcloud_process/ground_pointcloud
/range_front
/range_left
/range_right
/range_ultrasonic_face
/range_ultrasonic_left
/range_ultrasonic_right
/ros2udp/odom
/ros2udp_motion_mode_adv/joystick
/rosout
/rosout_agg
/scan
/slam_planner_node/DBLocalPlannerROS/global_plan
/slam_planner_node/DBLocalPlannerROS/local_plan
/slam_planner_node/DBLocalPlannerROS/obstacles
/slam_planner_node/DBLocalPlannerROS/parameter_descriptions
/slam_planner_node/DBLocalPlannerROS/parameter_updates
/slam_planner_node/DBLocalPlannerROS/teb_feedback
/slam_planner_node/DBLocalPlannerROS/teb_markers
/slam_planner_node/DBLocalPlannerROS/teb_poses
/slam_planner_node/DBLocalPlannerROS/via_points
/slam_planner_node/GlobalPlanner/parameter_descriptions
/slam_planner_node/GlobalPlanner/parameter_updates
/slam_planner_node/GlobalPlanner/plan
/slam_planner_node/GlobalPlanner/potential
/slam_planner_node/current_goal
/slam_planner_node/global_costmap/costmap
/slam_planner_node/global_costmap/costmap_updates
/slam_planner_node/global_costmap/footprint
/slam_planner_node/global_costmap/inflation_layer/parameter_descriptions
/slam_planner_node/global_costmap/inflation_layer/parameter_updates
/slam_planner_node/global_costmap/obstacle_layer/clearing_endpoints
/slam_planner_node/global_costmap/obstacle_layer/parameter_descriptions
/slam_planner_node/global_costmap/obstacle_layer/parameter_updates
/slam_planner_node/global_costmap/parameter_descriptions
/slam_planner_node/global_costmap/parameter_updates
/slam_planner_node/global_costmap/static_layer/parameter_descriptions
/slam_planner_node/global_costmap/static_layer/parameter_updates
/slam_planner_node/local_costmap/costmap
/slam_planner_node/local_costmap/costmap_updates
/slam_planner_node/local_costmap/footprint
/slam_planner_node/local_costmap/obstacle_layer/parameter_descriptions
/slam_planner_node/local_costmap/obstacle_layer/parameter_updates
/slam_planner_node/local_costmap/parameter_descriptions
/slam_planner_node/local_costmap/parameter_updates
/slam_planner_node/local_costmap/static_layer/parameter_descriptions
/slam_planner_node/local_costmap/static_layer/parameter_updates
/slam_planner_node/parameter_descriptions
/slam_planner_node/parameter_updates
/slamware_ros_sdk_server_node/add_line
/slamware_ros_sdk_server_node/add_lines
/slamware_ros_sdk_server_node/basic_sensors_info
/slamware_ros_sdk_server_node/basic_sensors_values
/slamware_ros_sdk_server_node/cancel_action
/slamware_ros_sdk_server_node/clear_lines
/slamware_ros_sdk_server_node/clear_map
/slamware_ros_sdk_server_node/global_plan_path
/slamware_ros_sdk_server_node/go_home
/slamware_ros_sdk_server_node/map_metadata
/slamware_ros_sdk_server_node/move_by_direction
/slamware_ros_sdk_server_node/move_by_theta
/slamware_ros_sdk_server_node/move_line
/slamware_ros_sdk_server_node/move_lines
/slamware_ros_sdk_server_node/move_to
/slamware_ros_sdk_server_node/move_to_locations
/slamware_ros_sdk_server_node/recover_localization
/slamware_ros_sdk_server_node/remove_line
/slamware_ros_sdk_server_node/robot_basic_state
/slamware_ros_sdk_server_node/robot_device_info
/slamware_ros_sdk_server_node/rotate
/slamware_ros_sdk_server_node/rotate_to
/slamware_ros_sdk_server_node/set_map_localization
/slamware_ros_sdk_server_node/set_map_update
/slamware_ros_sdk_server_node/set_pose
/slamware_ros_sdk_server_node/sync_map
/slamware_ros_sdk_server_node/virtual_tracks
/slamware_ros_sdk_server_node/virtual_walls
/tf
/tf_static
/ukd_triple/pose
/ukd_triple/state
/ukd_triple_2_goal/path_tag_line
/ukd_triple_2_goal/path_tag_window



You mentioned:

then the driver running in GO1 for the camera must have a parameter with image publishing set to false or disabled

Should I run this command ./Unitree/autostart/camerarosnode/cameraRosNode/kill.sh on all NVIDIA systems on my own PC, or both? If not, how can I disable it? Because I cannot find the launch file.



Can you also explain this image:

What package should I clone on ALL NVIDIA systems?

Dear @Amir_Mahdi,

It seems that there is some other ROS package running perhaps from the previous owner. They might have already disabled the camera and have their own drivers running.

It is best to ask them for guidance as the package that is being used is neither from us nor from unitree. At most i am guessing and telling you what can be expected from the ros convention but it seems the image stream is missing.

Where is the launch file you are talking about?. I dont see any node created (a student error), maybe i need to return the robot to a factory state(can i do that?).

Dear @nicolas

To identify the node, execute the rosnode list command to obtain the node’s name.
1

Next, use rosnode info (node_name) which will display information similar to the attached image.

Here /ekf_localization is used just as an example.

Look for the line starting with contacting node indicating the PC where the node is being published. Since ‘go1’ consists of four PCs, once you determine the PC running the node, you can SSH into that PC and inspect the node there.

Thank you for the quick answer.
My problem is that im looking for a topic thats not being published, in fact ive got almost any topic or node created.

image

Im looking for a topic related to odometry, i need the position of the robot and the angle of rotation

In that you can use the the go1_bringup and it should provide you with the odometry information form the qre_go1 package.