TL;DR Control essentials
Connect to the robot
Connect a LAN cable to roboy’s pelvis and a device of your choice (a PC or a switch)
Jetson Nano is running a DHCP server on the
192.168.1.XXX
subnetJetson Nano has a static IP
192.168.1.100
To connect to the ROS master in each terminal run (or add to ~/.bashrc):
export ROS_MASTER_URI='http://192.168.1.100:11311'
export ROS_IP='192.168.1.XXX'
- replace XXX with your IP
To connect to the Jetson Nano board:
ssh roboy@192.168.1.100
pw - shared on request
you will be directly connected to the terminal with all nodes
to switch between panes and scroll - read about tmux
tmux 101
Ctrl+A + ↑ - switch to the pane above (other arrows for other directions)
Ctrl+A + PageUp - scroll up in the current pane (PageDown - down)
Ctrl+A + D - detach from tmux - and go to default shell (the processes will keep running)
tmux attach
- connect to a running tmux sessionCtrl+A + “ - split current pane vertically
Ctrl+A + % - split current pane horizontally
Control the robot
You can use the Dashboard on http://192.168.1.100:1880/ui
Alternatively, use ROS topics:
if you are sending commands not from Jetson Nano, clone and install roboy_communication beforehand:
mkdir roboy_ws/src -p cd roboy_ws/src git clone https://github.com/Roboy/roboy_communication.git -b roboy3 cd .. catkin_make source roboy_ws/devel/setup.bash
Refer to Control page for the full software stack installation
to send the joint targets:
rostopic pub /roboy/brain/control/joint_targets sensor_msgs/JointState "header:
seq: 0
stamp: {secs: 0, nsecs: 0}
frame_id: ''
name: ['shouler_right_axis1']
position: [-0.5]
velocity: [0]
effort: [0]"
to find out joint names run
rosparam get /joint_names
, joint limits can be extracted from model.urdf - see Joint Control and Inverse Kinematics for more inforefer to Motor Control for low-level motor control
to send the emotion:
rostopic pub /roboy/brain/cognition/face/emotion roboy_control_msgs/Emotion "header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
emotion: 'shy'"