I was deploying the ROS commands following the ROS live stream. The issue is that the amiga is not receiving any commands from rqt_robot_steering. I tried with both the method 1 and 2 but unable to figure out why the amiga couldn’t move. I have attacched the screenshot for your reference
Please help me with this.
Thanks in advance!
Hello,
We cannot tell what commands you’ve run from this screenshot, but it appears you are checking the two topic streams in terminals on your PC.
The three most likely issues:
- Did you enable auto mode on the dashboard?
- Are you on the same network as the Amiga?
- The
ROS_MASTER_URI
& ROS_IP
are not properly set.
For (3): Have you tried echoing the topic from a second ssh ROS terminal on the Amiga? Remember you will need to properly configure the ROS_MASTER_URI
& ROS_IP
in this terminal as well.
After ssh’ing into the ros container:
source /opt/ros/noetic/setup.bash # Or source your catkin_ws
export ROS_MASTER_URI=http://<AMIGA_IP>:11311
export ROS_IP=<AMIGA_IP>
rostopic echo /amiga/cmd_vel
Please let me know.
– Kyle
I did all of those, but it is still not working. I believe there is some gap in communication between the amiga brain and the wheels. So they are not able to rotate.
Also when I actuate the slider in the rqt_robot_steering GUI, the mode doen not change from AUTO-READY to AUTO-ACTIVE.
OK, let’s get to the bottom of it! I’ll need some more information.
- What is the installed version on your brain under “Current” (Settings →
System Updates
)?
- What is the version on your dashboard under “Dashboard firmware” (Settings →
id
)?
- Are you getting messages in the second ROS container terminal when you run
rostopic echo /amiga/cmd_vel
?
- What is the state of canbus service on the settings page? It should be yellow | IDLE | green when the ros bridge is not running, then become green | RUNNING | green once you start it, and return to yellow | IDLE | green when you stop it. If this is not happening, you should stop & restart the canbus service before starting the ROS bridge.
- Can you try the virtual joystick app and see if you can (A) stream the values as you drive the amiga manually with the pendant (B) control the wheels with the virtual joystick? The canbus service state (and the oak0 service) should have the same behavior of going from IDLE to RUNNING as described above.
– Kyle
- Brain version is v1.2.2.
- Dashboard version is v0.1.8
- I’m not getting any messages
4.Yes it is turning green
- I could only control the amiga with virtual joystick in the virtual joystick app
Question - In which terminal should I run rqt_robot_steering?
Can you please share the source code for driving the motors and for other attachments and the CAN protocols for the same?
Thanks in advance
OK, great. That clears things up. The issue is definitely on the side of connecting over the network and the canbus grpc service / client is working as expected.
Let’s start with method 2 of running the ros bridge on your computer. I’m assuming it’s already built since you tried it already.
See: Amiga ROS Bridge - ROS bridge on your PC
- The laptop & the Amiga need to be on the same wireless network
- Do not export
ROS_MASTER_URI
or ROS_IP
in any terminals for method 2
- Find the IP address of the Amiga on the screen
- Confirm that the canbus service is yellow | IDLE | green
- Restart the service if not
- In terminal 1 on your PC run (and post the output of this here):
source ~/catkin_ws/devel/setup.bash
roslaunch amiga_ros_bridge amiga_ros_bridge.launch host:=<AMIGA_IP>
# Where you replace `<AMIGA_IP>` with the IP address on the screen
- Confirm that the canbus service is green | RUNNING | green
- In terminal 2 on your PC run:
source ~/catkin_ws/devel/setup.bash
rqt_robot_steering
- Make sure the topic is set to
/amiga/cmd_vel
and try moving the sliders around
- In terminal 3 on your PC, check (and post here)
rostopic list
, rostopic info /amiga/vel
, & rostopic info /amiga/cmd_vel
Please start a new thread for your other question about CAN protocols (it’ll help people find the information in the future).
– Kyle
OK and for Method 1:
Please post in a separate reply from Method 2 testing
See Amiga ROS Bridge - ROS Bridge on the Amiga
To run ROS on multiple machines, you’ll need to set the ROS_MASTER_URI
& ROS_IP
in every terminal.
See: Amiga ROS Bridge - Specifying the ROS Master.
The ROS_MASTER_URI
is the same in all terminals and (is recommended that it) should reflect the Amiga’s IP address.
The ROS_IP
should reflect the IP address of the device the terminal is on.
So your PC’s IP address will be used in all terminals on your PC (like the rqt_robot_steering
terminal) and the Amiga’s IP will be used in all terminals ssh’d into the ROS container on the amiga (like the ROS bridge for method 1).
- The laptop & the Amiga need to be on the same wireless network
- Find the IP address of the Amiga on the screen
- Confirm that the canbus service is yellow | IDLE | green
- Restart the service if not
- In terminal 1 ssh’d into the ros container (and post the output of this here):
source ~/catkin_ws/devel/setup.bash
export ROS_MASTER_URI=http://<AMIGA_IP>:11311
export ROS_IP=<AMIGA_IP>
roslaunch amiga_ros_bridge amiga_ros_bridge.launch
# Where you replace `<AMIGA_IP>` with the IP address on the Amiga screen
- Confirm that the canbus service is green | RUNNING | green
- In terminal 2 on your PC run:
source ~/catkin_ws/devel/setup.bash
export ROS_MASTER_URI=http://<AMIGA_IP>:11311
export ROS_IP=<DEV_STATION_IP>
rqt_robot_steering
# Where you replace `<AMIGA_IP>` with the IP address on the Amiga screen
# And you replace `<DEV_STATION_IP>` with the IP address of your PC
- Make sure the topic is set to
/amiga/cmd_vel
and try moving the sliders around
If that didn’t work, continue on
- In terminal 3 on your PC, run and post output here:
source ~/catkin_ws/devel/setup.bash
export ROS_MASTER_URI=http://<AMIGA_IP>:11311
export ROS_IP=<DEV_STATION_IP>
rostopic list
rostopic info `/amiga/vel`
rostopic info /amiga/cmd_vel`
# Where you replace `<AMIGA_IP>` with the IP address on the Amiga screen
# And you replace `<DEV_STATION_IP>` with the IP address of your PC
- In terminal 4 ssh’d into the ros container, run and post output here:
source ~/catkin_ws/devel/setup.bash
export ROS_MASTER_URI=http://<AMIGA_IP>:11311
export ROS_IP=<AMIGA_IP>
rostopic list
rostopic info `/amiga/vel`
rostopic info /amiga/cmd_vel`
# Where you replace `<AMIGA_IP>` with the IP address on the Amiga screen
- In the same terminal 4 ssh’d into the ros container with
ROS_MASTER_URI
& ROS_IP
already set, run and say if there is a stream from rostopic echo /amiga/vel
and for rostopic echo /amiga/cmd_vel
:
– Kyle
Through Method 2-
I tried following the above instructions. I had connected on the same wireless network and the can-bus service was working as it is stated in the instruction. The amiga is not responding yet.
Through method 1-
I have given amiga IP in ROS_MASTER_URI and my PC IP in ROS_IP. This is the error I’m getting after roslaunch. Please suggest.
Related to method 2:
That should be working assuming 192.168.9.124 is the Amiga IP address. Can you publish the /amiga/vel
topic and get a stream? If so, the amiga should be kicking into auto active if it is in the auto ready state. Maybe we can get on a brief video call to debug early this week?
For method 1:
In the top left terminal (running on the Amiga), you have the IP address in the ROS_MASTER_URI and that of the ROS_IP not matching. Are you trying to make the ros master running on your PC instead of on the amiga? There would need to be a roscore already running on your PC in that case.
Assuming you want the rosmaster running on your Amiga (as in the instructions) those two must match and be the amiga’s IP address.
– Kyle
Method 1-
I tried the above steps. It seems that there is some issues in /amiga/cmd_vel topic receiving messages from rqt_robot_steering. The mode on the amiga’s dashboard does not also change to auto active.
Please let me know how can I setup a meeting with you.
Thank You.
Hi @kylecoble ,
Please guide me through this.
Thank you
Hi @Shaswati_Behera, I tried to coordinate a meeting time with you using the discourse direct message. If you didn’t get it, I can try email.
– Kyle
No not your fault, just thought I’d give it a try. E-mail it is
@Shaswati_Behera @Amlan_Balabantaray
Thank you for working through this with us!
A summary of what we’ve found today is in order to have the ROS bridge functioning, you’ll need to have all of the following up to the following minimum versions:
- Dashboard firmware
v0.1.9+
- AmigaOS
v1.2.2+
It is also recommended to have pulled and built the latest code from amiga-ros-bridge
& the updated ROS docker container announced in Updated ROS docker container with depthai-ros support 📷.
These updates allowed operating the robot with “method 2” (ROS bridge running on the PC).
For method 1 (ROS bridge on the Amiga), we are still working through a connection issue.
Thanks,
– Kyle
As mentioned, for method 1 (ROS bridge on the Amiga) we are still working through a connection issue.
I’ve been trying to replicate what you were experiencing (where the /amiga/cmd_vel
is not streamed, even to other terminals on your PC when connected to the Amiga ROS master).
I have not been able to replicate the behavior unless I set the wrong ROS_IP
on the PC (just by changing the value by 1 so it’s incorrect). Can you please double check you are using the correct IP address on the PC based on ifconfig
?
Thanks,
– Kyle