-
Notifications
You must be signed in to change notification settings - Fork 37
2. How Tos
- Introduction
- Establish communication between remote development PC and MOVO
- Check communication between robot and remote computer is working properly
- Reconfigure parameters with real robot
- Find Kinect serial number
- Configuring MOVO for 6DOF robotic arm
- Update code base on movo1 and movo2 PCs
- Diagnosing issues with MOVO at boot up
- Examples and demos
- Creating a map with real robot
- Navigating in a map in rviz with real robot
- Operating robot in direct teleop mode with real robot
- Operating robot in assisted teleop mode with real robot
- Creating a map with virtual robot
- Navigating in a map with virtual robot
This page will contain instructions on how to carry out some basic tasks with MOVO. It will also highlight some examples and demos.
The connection can be made either with wire Ethernet or via wifi (SSID is MoVoWifi). In either case, MOVO will provide an IP address to the development PC through DHCP.
Edit the /etc/hosts
file and make sure the following two lines are present:
10.66.171.2 movo1
10.66.171.1 movo2
- Once the Ethernet connection is established and the development PC has an IP address in the range 10.66.171.x, check that you can ping the different MOVO internal peripherals at their IP addresses:
- 10.66.171.1 for movo2 PC
- 10.66.171.2 for movo1 PC
- 10.66.171.5 for the vector
- 10.66.171.8 for the front laser
- 10.66.171.9 for the rear laser
- 10.66.171.15 for the right arm base (will reply even if no arm is installed)
- 10.66.171.16 for the left arm base (will reply even if no arm is installed)
- Check that you can ssh into movo1 and movo2 onboard computers. To set up an ssh connection:
- Open terminal
ssh-keygen -t rsa
- Press enter to all the prompts (
Enter file
-> press enter,y/n
-> press 'y' andEnter, Enter passphrase
, press Enter) ssh-copy-id movo@movo1
- Type
yes
, andEnter
- Enter the common password:
Welcome00
- Type
ssh movo@movo1
to connect to movo1. Then in another terminalssh movo@movo2
- Ensure that you can list the rostopics, but also echo different rostopics
- Open terminal
rosrun rqt_reconfigure rqt_reconfigure
- Play with the sliders for dynamic reconfiguration (no need to reboot the robot)
- ssh into movo2:
ssh movo@movo2
- Parse the log file:
sudo grep -a "found valid Kinect" /var/log/upstart/movo-core.log
- Look for the last entries matching the following:
[Info] [Freenect2Impl] found valid Kinect v2 @3:3 with serial 007259563847
By default, MOVO is configured to use a 7DOF Kinova JACO robotic arm. A 6DOF arm can also be used, but some configuration is needed first. The following parameters need to be modified on:
- movo1
- movo2
- development PC
On each of these three computers:
- Go to
/home/movo/movo_ws/src/movo_common/movo_config/
- Open
movo_config.bash
to edit (E.g. using gedit) - Find the parameter
MOVO_HAS_KINOVA_ARM_7DOF
and change it from true to false. - Find the parameter
MOVO_HAS_KINOVA_ARM_6DOF
and change it from false to true. - Save changes and change directory into /home/movo/movo_ws/
- Rebuild the software using:
catkin_make clean
catkin_make
This section is useful if you want to update the code on movo1 and movo2 computers to a more recent version of the repository code available on the github (or an updated repository you would have created on your own). Movo1, movo2 and your remote computer must all run the same version of the code. When you update one with a new code repository, please update the other two as well.
First, make sure you make a backup copy of the existing /home/movo/movo_ws
directory on both movo1 and 2 PC before changing anything.
- ssh into movo1
- From the
/home/movo directory
, typecp -r movo_ws movo_ws_v1.0.0
- Repeat the same steps for movo2
This directory contains the calibration data of your movo Kinect under src/movo_common/movo_third_party/iai_kinect2/kinect2_bridge/data/<Kinect_serial_number>
Note that all MOVO platforms are delivered with the latest code base release located in /home/movo/movo_ws/src
and there is not a link with the Kinova github repository (the .git directory is not present).
However, you will eventually need to update MOVO code base with new firmware. There are two ways to update the code base in the movo PCs.
- You can give access to movo1 and movo2 to the internet via your organisation network and from and ssh session, clone and synchronize
/home/movo_ws/src
from the kinova github repo. - The kinova github repo can be cloned and synchronized from the development PC. Movo1 and movo2 can be updated using either rsync over ssh or by mounting movo’s file system from the development PC and dragging/dropping the code from the PC to MOVO.
Here is how to connect to the movo PCs file system:
- In the file explorer, click on Connect to Server on the lower left side and type:
sftp://10.66.171.1/home/movo
to connect to movo2 -OR-sftp://10.66.171.2/home/movo
to connect to movo1 - The user is movo and the password is Welcome00 on both movo1 and 2.
- The content of the github shall be placed/checkout under
/home/movo/movo_ws/src
Once the code base has been placed onto both movo’s PC, from /home/movo/movo_ws/src
:
- ssh into movo1
cd /home/movo/movo_ws/src
- Make sure the Kinect calibration data is under
/home/movo/movo_ws/src/movo_common/movo_third_party/iai_kinect2/kinect2_bridge/data/<Kinect_serial_number>
catkin_init_workspace
cd /home/movo/movo_ws/
catkin_make clean
catkin_make
- Repeat the same steps on movo2
- Ensure that movo1, movo2 and the development PC contains the same version of the movo code base from the repo. Also ensure that they have the Kinect calibration data and that they have had
catkin_make
applied.
See also this disussion.
- ssh into movo2:
ssh movo@movo2
- Type
movostop
- Wait for 10 seconds
- Type
movostart
- Type
movochk
every second orsudo tail -F /var/log/upstart/movo-core.log
which will display the logs generated in real time.
It is also possible to monitor interaction with MOVO internal peripherals either by logging into movo1 with an ssh session or by mounting the movo1 filesystem from the development PC as described in the section above. Note that if you mounted movo1 filesystem, you’ll have to hit ctrl+h in order to show hidden directories.
The logs are located under /home/movo/.ros/log/latest
.
Logs entries are created for many peripherals and features.
The MOVO code base comes with several Python scripts provided as examples and demo. They are located under:
/home/movo/movo_ws/src/movo_demos
/home/movo/movo_ws/src/movo_common/si_utils
Depending on the format these can be launched with either rosrun
or roslaunch
.
- The source code is in
movo_demos/scripts/demo_show_basic.py
- To run:
- ssh onto movo2
- go in
/home/movo/movo_ws
roslaunch movo_demos demo_show_basic.launch
- Leave enough room around MOVO so it can fully deploy its arms around it.
- Send commands directly to the arms joint trajectory action server:
rosrun si_utils jaco_jtas_test.py
- Send commands directly to the neck motion action server:
rosrun si_utils head_jtas_test.py
- Send commands directly to the torso motion action server:
rosrun si_utils torso_jtas_test.py
- Send commands directly to the movo base:
rosrun si_utils base_motion_test.py
- Send commands directly to the gripper motion action server (kinova grippers):
rosrun si_utils gripper_action_test.py
- Send commands directly to the gripper motion action server (Robotiq grippers):
rosrun si_utils robotiq_85_gripper_test.py
- Test movo text to speech:
rosrun si_utils voice_test.py
- In a terminal, launch the mapping tool on the Movo computer:
roslaunch movo_demos robot_mapping.launch
. - Drive the robot around to map the area.
- When the map is finished, open a new terminal and save the generated map by typing save_map your-map-name
- Copy the generated .yaml and .pgm files to
movo_ws/src/kinova-movo/movo_demos/maps
- Quit the mapping and rviz sessions
- Start robot in rviz in a map (you need a map for this functionality to work):
roslaunch movo_demos robot_map_nav.launch map_file:=mapname
. - In the Rviz interface, select <2D Pose Estimate> and give an estimate of the robot’s current pose and heading in the map. Note: To select the initial heading, hold the mouse button and rotate the arrow around before releasing your click (see image below). The real robot and simulated robot will turn on themselves.
- Select Publish Point and click points in the map.
- Select Interact, click on gray rectangle above simulated robot, and select WayPoints->start. The real robot and simulated robot will go the selected points.
- Note: you can also use the interactive markers to move the robot around: and use arrow/ring markers to drive the robot around.
- Connect the joystick to the USB port of the HMI of the MOVO.
- Open an ssh session on movo2
- Go into
/home/movo/movo_ws
- Launch teleoperation:
roslaunch movo_remote_teleop movo_remote_teleop.launch
- On the USB joystick, press '10', then press '4', then use the joystick while pushing the dead-man button.
- Connect the joystick to the USB port of the development PC.
- Open a terminal on the development PC
- Go in
/home/movo/movo_ws
- Launch navigation:
roslaunch movo_demos robot_assisted_teleop.launch
- In a new terminal, launch teleop:
roslaunch movo_remote_teleop movo_remote_teleop.launch
- Press '10', then press '4', then use the joystick while pushing the dead-man button
- Disconnect movo from the wifi or Ethernet connection (if you have a real robot and it is active)
- Follow installation steps as detailed on kinova-movo github
- Launch gazebo, rviz and gmapping:
roslaunch movo_demos sim_mapping.launch
- Alternatively, follow the instructions in <Create a map if needed (Skip if you already have one)>
- Drive the robot around using the joystick until you have a good map of the room using the tele-op node
- Save your map as in section "Creating a map with real robot"
- Disconnect movo from the wifi or Ethernet connection (if you have a real robot and it is active)
- Follow installation steps as detailed on kinova-movo github
- Launch gazebo, rviz and gmapping:
roslaunch movo_demos sim_map_nav.launch
- Alternatively, follow the instructions in < Testing navigation>
- In the Rviz interface, select <2D Pose Estimate> and give an estimate of the robot’s current pose and heading in the map. Note: To select the initial heading, hold the mouse button and rotate the arrow around before releasing your click (see image below). The real robot and simulated robot will turn on themselves
- Select Publish Point and click points in the map
- Select Interact, click on gray rectangle above simulated robot, and select WayPoints->start. The real robot and simulated robot will go the selected points
- Note: you can also use the interactive markers to move the robot around: and use arrow/ring markers to drive the robot around