ROSbot board change

So I upgraded a ROSbot2 with an ODROID-C4 since RPi4’s are impossible to get these days. ROS2 runs on it for the most part, but I’m having trouble getting any of the previous hardware to work. So far I’ve been able to get the RPlidar running, but I’ve had no luck with the Astra camera using the Core2 board to control the motors.

For the Astra camera, I can clone the github repo but encounter errors when trying to compile the workspace.

Any tips?

Hi Clint,

I am about to do the same with my ROSbot 2, if you attach the compile errors I may be able to help you progress. Any issues with the board swap, other than your original post ?

One thing to be careful of is most ros reops have a ros2 or similar branch that may not be the default, so be sure to use the correct branch when cloning (git clone -b ros2), for example

Hi Clint,

I have all sensors, camera included, running with the Husarion humble docker images.

Hi Hetz,

That’s great! I’m not super familiar with docker, I’ve been running Ubuntu 20.04 directly on the ODROID-C4.

I’ve attached the compile errors at the bottom of the post. So far no other issues, but I’ve not gotten far enough to tell for sure. I’m quite new to all this, and have not had good luck getting the original ROSbot working with ROS1 due to broken images on husarion’s website. I’m currently running Foxy instead of Humble since a textbook I was following is using Foxy.

I ran
git clone https://github.com/orbbec/ros_astra_camera.git -b ros2

and

git clone -b ros2 https://github.com/orbbec/ros_astra_camera.git

with the error message of fatal: Remote branch ros2 not found in upstream origin being output in both cases.

Regarding error messages in the compiling, I was getting this:

--- stderr: astra_camera make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../../ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64 ../../ThirdParty/PSCommon/BuildSystem/CommonDefs.mak:40: HOST_PLATFORM is Arm64

Summary: 60 packages finished [1min 8s] 1 package had stderr output: astra_camera

Hi clintonamoar

In repository, you are trying to use isn’t any branch named ros2 (Orbbec doesn’t support ROS2 for these devices), so it’s not possible to change branch for ROS2 or build source code for ROS using ROS2 tools.

You can try our fork of this repository with some changes:

Please let me know if it works for you :slight_smile:

Best regards,
Hubert

Hi Hubert, this did not work for me. I cannot use catkin_make as the command is not found, so I use colcon build --symlink-install. Here is the step-by-step of what I did

  1. change directories to my workspace
    cd /bookros2_ws/src
  2. clone the repository you linked into this location
    git clone https://github.com/husarion/ros_astra_camera
  3. move back to main workspace folder to recompile
    cd /bookros2_ws
  4. run catkin make to compile as suggested on the github page
    catkin_make --pkg astra_camera
    this yields the error message of
    bash: catkin_make: command not found
  5. run colcon build to compile instead
    colcon build --symlink-install
    this yields lots of errors that I’ve linked in this pastebin link

Please let me know where I am going wrong so I can try again. Thanks.

Hi clintonamoar,

You can find answers for your question in this topic.

Best regards,
Hubert

Hi Clint,

Try the following; it is a ROS2 branch of the astra code. I was able to build on my rosbot and connect to the camera. Note I have galactic installed so you may have to make some code changes for humble. If you still encounter the qos compile errors, include <rclcpp/qos.hpp> and change the rmw_qos_profile variables to rclcpp::QoS qos( 10 ).

Preformatted text

mkdir -p ~/ws_astra/src; cd ~/ws_astra/src
wget https://dl.orbbec3d.com/dist/openni2/ROS2/OpenNI_SDK_ROS2_v1.0.2_20220809_b32e47_linux.tar.gz
tar -xzvf OpenNI_SDK_ROS2_v1.0.2_20220809_b32e47_linux.tar.gz
cd …
colcon build

1 Like

Hi @hetzzzer,

Thank you for all your help. I ran the commands and am no longer getting qos compile errors, but now glog errors (shown in this pastebin link).
.
.
.

One clarification here, I am on Foxy, not Humble, though I understand syntax might be different for different ROS version. That being said, here I am not sure where I would need to make changes, I am still very unfamiliar with ROS.
.
.
.

I am not sure where to add this include, I usually see them in /home/odroid/ws_astra/src/ros2_astra_camera/astra_camera/CMakeLists.txt but I am not seeing it here.
.
.
.

Once again, I am not sure where to change this variable. Would you be able to give me a detailed path to look in?

FYI the cpp files with compile errors required editing.

The README.MD in the root folder of the OpenNI SDK folder has instructions for building and installing glog and two other packages required by the SDK build

README.MD was very helpful. I’ve made it all the way to starting the camera, but when I launch astra_mini.launch.py, several errors regarding astra_camera_containers and PointCloudXyzNode are thrown out, however the process does seem to run. RVIZ2 will also run, but I have no image from the camera yet.

What do you see when you run ros2 topic list, service list, and param list? I get:

odroid@odroid:~$ ros2 topic list
/clicked_point/goal_pose
/initialpose
/parameter_events
/rosout
/tf
/tf_static

odroid@odroid:~$ ros2 service list
/astra_camera_container/describe_parameters
/astra_camera_container/get_parameter_types
/astra_camera_container/get_parameters
/astra_camera_container/list_parameters
/astra_camera_container/set_parameters
/astra_camera_container/set_parameters_atomically
/launch_ros_6806/describe_parameters
/launch_ros_6806/get_parameter_types
/launch_ros_6806/get_parameters
/launch_ros_6806/list_parameters
/launch_ros_6806/set_parameters
/launch_ros_6806/set_parameters_atomically
/rviz/describe_parameters
/rviz/get_parameter_types
/rviz/get_parameters
/rviz/list_parameters
/rviz/set_parameters
/rviz/set_parameters_atomically

odroid@odroid:~$ ros2 param list
/astra_camera_container:
use_sim_time
/launch_ros_6806:
use_sim_time
/rviz:
use_sim_time

I believe some camera topics are missing, though I can’t be sure what exactly I’m missing without comparing to the topics you see.