Skip to content
This repository has been archived by the owner on Jul 14, 2023. It is now read-only.

2. How Tos

martine1406 edited this page Oct 30, 2018 · 15 revisions

Table of Contents

Introduction

This page will contain instructions on how to carry out some basic tasks with MOVO. It will also highlight some examples and demos.

Establish communication between remote development PC and MOVO

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

Checking communication between robot and remote computer is working properly

  • 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' and Enter, Enter passphrase, press Enter)
    • ssh-copy-id movo@movo1
    • Type yes, and Enter
    • Enter the common password: Welcome00
    • Type ssh movo@movo1 to connect to movo1. Then in another terminal ssh movo@movo2
  • Ensure that you can list the rostopics, but also echo different rostopics

Reconfiguring parameters with real robot

  • Open terminal
  • rosrun rqt_reconfigure rqt_reconfigure
  • Play with the sliders for dynamic reconfiguration (no need to reboot the robot)

Finding Kinect serial number

  • 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

Configuring MOVO for 6DOF robotic arm

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:

  1. Go to /home/movo/movo_ws/src/movo_common/movo_config/
  2. Open movo_config.bash to edit (E.g. using gedit)
  3. Find the parameter MOVO_HAS_KINOVA_ARM_7DOF and change it from true to false.
  4. Find the parameter MOVO_HAS_KINOVA_ARM_6DOF and change it from false to true.
  5. Save changes and change directory into /home/movo/movo_ws/
  6. Rebuild the software using:
  • catkin_make clean
  • catkin_make

Updating code base on movo1 and movo2 PCs

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, type cp -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.

Diagnosing issues with MOVO at boot up

  • ssh into movo2: ssh movo@movo2
  • Type movostop
  • Wait for 10 seconds
  • Type movostart
  • Type movochk every second or sudo 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.

Examples and demos

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.

Demo presented at IROS 2017

  • 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.

Other examples provided

  • 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

Creating a map with real robot

  • 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

Navigating in a map in rviz with real robot

  • 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.

Operating robot in direct teleop mode with real robot

  • 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.

Operating robot in assisted teleop mode with real robot

  • 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

Creating a map with virtual 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_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"

Navigating in a map with virtual 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