-
Notifications
You must be signed in to change notification settings - Fork 16
Ceres owner's manual
These instructions show how to connect to the rover locally, to connect remotely (over the internet, without being in the lab) check this this page.
SSH allows you to open a terminal in another computer. This is often needed for development and testing in the lab.
To SSH into the rover, check that these are plugged in on the robot side:
- Antenna plugged into the M900 (white box on the mast)
- M900 plugged into PoE injector
- PoE injector connected to ethernet jack on the jetson (through the ethernet port that is on the outside) Check that these are plugged in on the basestation side:
- Antenna’s M900 box is plugged into PoE injector (this is a black box)
- PoE injector must be powered!
- PoE injector is also plugged into the router
- Router is plugged into power
On you computer, connect to the SCRB-Access-5GHz network or SCRB-Access. Then, run this command:
ssh [email protected]
Log in and you have a terminal into the rover!
To access the antennas, log into https://10.240.0.21/index.cgi and https://10.240.0.22/index.cgi
When connected to the rover over the LAN (see above), nomachine can be used to remote desktop, use the same IP address 10.240.0.1
. Ensure that the DisplayPort dummy is plugged in!
There is a service, ros-rover-start.service, that starts on startup. This service runs runRosRoverStart.sh, which then calls rosRoverStart.sh, which then calls the robot_ik.py launch file. This service also runs the configure-can0.sh and configure-arm.sh files.
There are logs in rosRoverStart.log.
This service is currently enabled, but it always needs to be restarted in order to work for
some reason we don't understand. To restart it, run sudo systemctl restart ros-rover-start.service
.
Then, on the basestation, run ros2 run joy joy_node
(with the joystick plugged into the basestation). To check it is running, run ros2 topic echo /joy
on the Jetson to verify that the joystick commands are being sent over.
The arms and wheels should now be controllable.
If you wish to manually start the nodes, the following commands should do all that
ros-rover-start.service does. The repo is in ~/Programming/robotics-prototype
:
sudo ./configure-can0.sh
-
sudo ./configure-arm.sh
(an error of /dev/ttyUSB1 is normal here) ros2 launch launch/robot_ik.py
The repo for the webgui is here.
To start the camera streams, go to ~/Programming/robotics-orin-gui and run two servers with the following commands: ts-node src/server.ts
and ng serve --host 0.0.0.0 --port 4200 --ssl
. Then, open https://localhost:4200/server in a chromium window (on the rover). Then, at the basestation, open https://192.168.0.10:4200/ . Note that the SSL certificate must be added to the client browser (see README for details).
To start camera streams, run ~/Programming/robotics-prototype/scripts/play-all.sh
to stream all the cameras. Note that a.sh (on jetson) will have to be modified with the client ip. Then, on the client, run the following command: ffplay -fflags nobuffer -flags low_delay -framedrop udp://0.0.0.0:40000
. Run this command again with the port changed to 40002, 40004, etc for each of the cameras.
Teardown: use Top (or some other tool) to kill the ffmpeg processes streaming the cameras, the ffplay processes on basestation. Finally, ctrl-c the ros2 launch command.
If you need to see low level messages, plugging a usb cable into the USB-C port labeled “USB console”. This port is on a green PCB, which has a bunch of jumper wires directly plugged into the Jetson’s pins.
Using software like GTKTerm, access this serial console to gain a terminal of the Jetson. The speed is 115200, and the port will likely be /dev/ttyUSB0
(if on linux). It may also be necessary to uninstall brltty and reboot. The necessary configuration follows (although, again, it might be on a different device file than /dev/ttyUSB0):
Not all packages will compile on your PC due to the requirement to have a GPIO package installed. Install it from here: https://github.com/pjueon/JetsonGPIO/blob/master/docs/installation_guide.md Then, compile the packages you need with “colcon build --packages-select <package_name>”
Might need to install empy: ‘pip install empy==3.3.4’