ROSbot 2 PRO tutorials, mapping and navigation strange behavior

I have recently had to rebuild my ROSbot 2.0 Pro image with the Melodic image provided by Husarion. Upon revisiting the tutorials, they seem to be in a state of disrepair. Attempting to use the Gazebo model provided at:
github repo rosbot_description
The instructions assume kinetic is installed, while the default image for the robot is melodic.

Regardless, I followed the instructions on the github repo to clone and build the software on my machine with ubuntu 18 and melodic installed. to which I recieve the following error:
RLException: Unable to contact my own server at [http://VMlaptop:38321/].

Where VMlaptop is my husarnet id for my laptop.

I’ve also noticed many of the tutorials don’t seem to work properly. I’ve even cloned and built the solutions in the following repo:
github repo tutorial_pkg

And I’m still having issues getting the robot to run the launch files proper as it had prior to my recent rebuild.

My question is, has anyone actually run through the tutorials from start to end using each robot?

It seems there is a decent amount of github activity on ROS2 docker packages, but there’s not a whole lot explaining how to build them or use them. Where do I find how to create and use the Docker containers? If the intent is to move to ROS2, where are the tutorials for ROS2?

I’m finding it incredibly hard to learn anything from the tutorials at this point, which was the whole purpose of purchasing this robot.

Please help.

Thanks!

I have had good results with the prebuilt rosbot docker containers for ROS2 humble. I did have to reflash the CORE2 board before the ROS2 docker containers worked.

Check this repo GitHub - husarion/rosbot_ros: ROS packages for ROSbot 2, 2R and 2 PRO

@hetzerrr thanks for the quick response!

So do I understand it correctly that the docker contains an install of ROS 2 humble? While this is inside of a container, shouldn’t I still use this container on a PC with the appropriate Ubuntu distribution?

Would you mind pointing me to the correct installation instructions to install the correct image to the robot to match this simulation?

Thanks in advance for your help!

The instructions are at Operating System Reinstallation | Husarion, selecting the Rosbot Pro.

The docker containers include all that is needed, including ROS humble, so a native install on the SBC is not necessary. Yes, the containers are run from the SBC with Ubuntu installed.

Additional info regarding the docker images is at Docker Images For Husarion's Robots | Husarion. The github repo at GitHub - husarion/rosbot-docker: Docker images for ROSbot 2 platform, ros2 branch used to contain a set of very useful set of docker compose files, but these were deleted with a recent commit. I will report this on a separate thread

This has been my experience as well, just with the ROSbot 2.0 base model :frowning:

@hetzerrr
Do you know of a set of instructions that are a linear, “start to finish” guide for a non-seasoned ROS/Docker/Github developer to get the the robot running and to learn how to actually use ROS?

The links you had attached do not really explain what exactly needs to be done in a manner that a complete noob could understand.

Thanks again for your help!

After further exploration into the “quick start” guide which ultimately leads to the rosbot-docker github repo, I find instructions that are riddled with mistakes. It never actually instructs to clone the repo on the robot. After finally getting the dockers running on both laptop and my ROSBOT 2.0 Pro (running the Ubuntu 18/Melodic image provided), I get tons of errors in RVIz

  1. No Map Received
  2. in RobotModel: No transform from [every fram] to [map]

While this may sound simple for a ROS expert, this is pretty awful for someone learning like myself.

Is there any step by step process that actually works for the ROSBOT 2.0 Pro?

Any help would be greatly appreciated, otherwise this robot may also get put up for sale

Hello moyboyufl,

first, try running the examples from the following repositories on your ROSbot 2 PRO:

Remember to properly set the .env file.

Before running the examples (in the case of ROSbot 2 PRO), I suggest you run the following two commands in the ROSbot’s terminal to ensure that the SERIAL_PORT environment variable is set correctly:

export SERIAL_PORT=/dev/ttyS4

echo "export SERIAL_PORT=/dev/ttyS4" >> ~/.bashrc

In case of further problems, let me know.

Best regards
Jan Brzyk

Thank you for a response.

What Ubuntu/ROS image do I need to install onto the robot/ dev laptop?

What do you mean by properly setting my .env file? The first repo has no mention of .env file settings. What should I be properly setting?

For the serial port environment variable, where is this information located in the tutorials?

What other dependencies need to be installed prior to running the mentioned tutorials. Given that this is intended to be an educational product to learn how to use ROS, I feel that there should a set of cohesive instructions, from start to finish.

The quick start guide provides instructions to multiple installation images, so which image should be installed prior to following the instructions in the mentioned repositories?

I’ve already spent far too many hours fumbling around with various combinations of system configurations, since the documentation is very confusing to me.

Given my consistent state of confusion with the tutorials, should I assume that the ROSbot products are intended for developers with a more solid understanding of ROS and docker? I’m more than willing to be told that I’m not skilled enough to use your tutorials, but I’d at least like to know that up front, and what type of prerequisites are needed to utilize your product

Thank you for your patience, and I look forward to your clarification.

@moyboyufl

For ROSbot, there is no imposed system image. You can use the system image given by default or flash new image from our ROSbot 2 PRO manual. For PC/laptop, it is recommended to have at least Ubuntu 20.04, but older (for example 18.04) should work. ROS version installed on ROSbot or computer doesn’t matter since you launch these three examples I’ve sent above, because of Docker utilization. Make sure you have Docker installed on your PC/laptop.

Yes, of course, when there is no .env you don’t have to set .env file. If it exists, the .env file is well described in a README of a given repository.

For the SERIAL_PORT environment variable, you can see the info here.

There is no need to install any dependencies as it is exactly the power of the Docker which takes care about all the dependencies.

As mentioned above, examples work with all the system images.

Let me know in case of any other problems.

Best regards
Jan Brzyk

@JanBrzyk
I’ve successfully gotten all 3 of the templates you listed to run. I will say that I am very disappointed in the performance of the mapping and navigation, as compared to the performance of the tutorials a year ago, as well as the built in demo in the quick start.

For reference, I’m using an i7 laptop with ubuntu 18 running natively and a logitech F710 gamepad connected over usb.

When mapping, If I don’t move super slowly, and stop for a few second after each movement, the SLAM loses localization, and never catches back up. Sometimes when I think I’ve gotten a good map, then stop the robot, the map keeps moving, even though the odometry and lidar show no movement.

I’ve even mapped the small area of my office. After finally being able to get a successful map, when I navigate, the path plan is nonsensical. It keeps trying to go in circles when it can more easily move in a straight line.

During both mapping and navigation, I frequently get errors in Rviz and the docker terminals, and I lose the map in both mapping and navigation, or I lose gamepad or keyboard controll in the mapping (I’ve tried both)

How do I find the source code for what you built into the docker? The repo’s have no code in them. When I look in the yaml files, it seems to point to a husarion Docker repo.

Has the product team actually tried running a ROSbot 2.0 PRo out of box through the tutorials on the website? They don’t work.

Has the product team actually run the robot through the 3 templates provided to me? They execute, but to say they work would be very optimistic.

Is there a way I can get a hold of the website tutorials and built in demo from a year ago? They did actually work decently. Far better than what has been suggested to me.

I’m currently enrolled in the constructsim as well, but they seem to be using the Rosbot 2R. Are there specific courses I can use so I can get some uses out of this robot?

Can I exchange my robot for the 2R model?

Are my expectations for the usefulness of this $3K device too much? I’m sorry for getting so upset, but this robot has given me nothing but frustration since the website changed the tutorials and images.

@moyboyufl
The problems you described look very strange, because naturally all our examples and tutorials are properly tested on all supported versions of robots. In your situation (both rosbot-mapping and rosbot-navigation) I suggest changing the RMW_IMPLEMENTATION variable to rmw_cyclonedds_cpp in the .env configuration file. Just comment out the current value and uncomment the value I suggested.
Additionally, just in case, execute the following command:

export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

Let me know if it gave positive results.

Best regards
Jan Brzyk