Discussion - Robot Teleoperation (Making a Mobile Robot Pt 14a & 14b)

Part A

Part B

Blog post for part A
Blog post for part B

This is the discussion topic for the video and blog post linked above. Please keep all replies relevant to the content, otherwise create a new topic.

1 Like

which ip addresses are taken? first line that of the robot and in the second line that of the dev machine?
Unfortunately, the npm server is not running as desired for me.
Do I have to rebuild the root directory if there are changes or just run npm install and then npm start in the example folder?

Are you referring to here where I set the IP addresses in the web page?

The IP address for the ImageStream should be whichever is running web_video_server and the one for RealGamepad/SimGamepad should be whichever is running rosbridge. In my example the former was the Pi and the latter was the dev machine. Make sure you do it for both of the pages (sim and real).

In what way?

Yeah, good question, I get very confused by it all. In theory when you npm start it should auto pick up changes. I think in this case because there are actually two levels, the library and the example page, it doesn’t seem to work properly. And to make things confusing the “conceptual top level” (the example page) code is nested inside the lower level (the library).

So if you are only tweaking something at the example level you should not need to rebuild, but if you tweak the library code I think you need to rebuild it then rerun the example/page/server bit.

This is an area I am very weak in so I probably did it all wrong, and I also wrote it a couple of years ago.

I am (slowly) working on a Foxglove extension to totally replace this which will be a far better approach!

Hi there,
i am having a strange behaviour.
While using a gamepad my robot turns right when i am steering to the left and it turns left when i am steering to the right.
Where is my mistake here?

The simplest answer is probably: in the teleop_twist_joy params, try just flipping the sign of the angular Z value.

You can also step through and echo /joy and your cmd_vel topic to check what the values are at each stage.

Thanks for the fast answer.
Meanwhile i have found the problem.
I had to switch the motor cables on the controller.

Thank you Josh your great video.
my robot turn left with joystick but my rviz turn right…
in your tutorial… you explained I think.
but I couldn’t find your explain…
where should I fix it…
Anyone knows this issue and how to fix it please let me know



fixed with hardware connection … motor connection with the arduino.

interrupt each other → camera.launch.py and launch_robot.launch.py
in ros2_control.xacro

/dev/serial/by-path/platform-fd ~~~~ tried avoid interrupt arduino and rplidar

rplidar.launch.py and launch_robot.launch.py is ok

issue: during using rviz2 -d ~~… can not use camera…

Hey John, sorry I’m a little confused by your replies - can you please clarify what the current problems are?

  • The first one seemed to be an issue with it showing the turns the wrong direction in RViz, but then possibly you got that fixed?
  • The second I’m not sure if you are saying there is a clash between the camera and the lidar? Or the Arduino?

If the camera is not showing up in RViz, make sure you are using an Image display (not a Camera as it can be trickier to get going) and check with the dropdown that the topic is actually being published. There was an issue I didn’t explain clearly at this point that the simulated camera and real camera were set up to publish on slightly different topics.

If you can explain the issue more clearly I’m happy to try and help :slight_smile:

There is a clash between the camera and the Arduino.
the lidar and the Arduino(robot) looks fine at the moment.

in the ros2_control.xacro


            <param name="device">/dev/ttyUSB1</param> 

**usb0 is lidar, usb1 is robot

both I tested but same issue…

            <param name="baud_rate">57600</param>
            <param name="timeout">1000</param>
            <param name="enc_counts_per_rev">3436</param>

in the pi
mate_bot@pi:~$ ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1

mate_bot@pi:~$ ls /dev/serial/by-path

in the rviz2

reset button
robot and lidar working
camera warn… camera info: No camera info received on [/camera/carmera_info] Topic may not exist

if only run camera launch file, rqt_image_view is working.

Please let me know how to fix the crash with camera and robot(arduino)
I searched google it but couldn’t find the solution
sorry interrupt and my poor English

(post deleted by author)

camera issue with web server.
any one have an idea please let me know

There is no video stream.
I check the topic list at the dev machine.
There is a /image_raw as below.

dev-pc@Dev-PC:~/dev_ws$ ros2 topic list

Tested with the rqt_image_view is working at ehe dev machine
dev-pc@Dev-PC:~/dev_ws$ ros2 run rqt_image_view rqt_image_view

The pi side web_video_server is working well I think
mate_bot@pi:~/robot_ws$ ros2 run web_video_server web_video_server
[INFO] [1679537318.652438037] [web_video_server]: Waiting For connections on