Files
RRRobot/docs/gear.md
Sravan Balaji 24d9bba7e0 Dos2Unix Instructions
- Add troubleshooting section to gear.md that discusses using dos2unix if there are newline character issues
- Remove commented out commands from run_all.sh
2020-04-27 15:40:02 -04:00

6.1 KiB

GEAR Simulation

Table of Contents

Running GEAR Container

  1. On your local system, go to docker_env folder
    • cd /PATH/TO/RRRobot/docker_env
  2. Start GEAR docker container
    • docker-compose run --rm gear

Building & Running Simulation

  1. Source ROS Setup
    • source /opt/ros/melodic/setup.bash
  2. Run Simulation

Controlling Sample Environment

While sample environment is running, open a new terminal (see tips & tricks section of home) on the running docker container. The following sections provide a brief overview of the commands that can be used to control various aspects of the simulation. For a full list, check out the ARIAC 2019 Wiki.

sample_run.sh moves arm 1 over the gasket part, picks it up, moves it to AGV1's tray, drops it, and moves back to the starting position.

Start Competition

rosservice call /ariac/start_competition

Controlling Arms

Gripper

  • Turn gripper suction on
    • rosservice call /ariac/arm1/gripper/control "enable: true"
  • Turn gripper suction off
    • rosservice call /ariac/arm1/gripper/control "enable: false"

Joints

Move arm1 over a gasket part

rostopic pub /ariac/arm1/arm/command trajectory_msgs/JointTrajectory    "{joint_names: \
        ['linear_arm_actuator_joint',  'shoulder_pan_joint', 'shoulder_lift_joint', 'elbow_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint'], \
     points: [ \
{time_from_start: {secs: 2}, \
        positions: [0.15, 3.14,  -1.570,  2.14, 3.1, -1.59, 0.126]}, \
{time_from_start: {secs: 4}, \
        positions: [-0.35, 3.14,  -0.6,  2.3, 3.0, -1.59, 0.126]}, \
{time_from_start: {secs: 6}, \
        positions: [-0.35, 3.14,  -0.5,  2.3, 3.05, -1.59, 0.126]}, \
]}" -1

Move part to AGV1's tray

rostopic pub /ariac/arm1/arm/command trajectory_msgs/JointTrajectory    "{joint_names: \
        ['linear_arm_actuator_joint',  'shoulder_pan_joint', 'shoulder_lift_joint', 'elbow_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint'], \
     points: [ \
{time_from_start: {secs: 2}, \
        positions: [0.0, 3.14,  -1.570,  2.14, 3.27, -1.51, 0.0]}, \
{time_from_start: {secs: 5}, \
        positions: [1.0, 1.85,  0,  -0.38, 1.57, -1.51, 0.00]}, \
{time_from_start: {secs: 7}, \
        positions: [1.0, 1.507,  0,  -0.38, 0.38, -1.51, 0.00]}, \
{time_from_start: {secs: 10}, \
        positions: [1.18, 1.507,  0.38,  -0.38, 1.55, 1.75, 0.127]}, \
]}" -1

Return to starting position

rostopic pub /ariac/arm1/arm/command trajectory_msgs/JointTrajectory    "{joint_names: \
        ['linear_arm_actuator_joint',  'shoulder_pan_joint', 'shoulder_lift_joint', 'elbow_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint'], \
     points: [ \
{time_from_start: {secs: 5}, \
        positions: [0.0, 3.14,  -1.570,  2.14, 3.27, -1.51, 0.0]}, \
]}" -1

Running Full Simulation

Manual Process for Testing

Terminal 1: ARIAC Environment

  • cd /app/rrrobot_ws/src/rrrobot/scripts
  • ./rrrobot_run_no_build.sh

Terminal 2: Build RRRobot Package & Arm Controller Node

  • cd /app/rrrobot_ws
  • catkin_make clean
  • catkin_make
  • source devel/setup.bash
  • rosrun rrrobot arm_controller_node

Terminal 3: CV Model

  • cd /app/rrrobot_ws/src/rrrobot/src/
  • python3 cv_model.py

Terminal 4: Depth Camera Node (for getting pick up location)

  • cd /app/rrrobot_ws/
  • source devel/setup.bash
  • rosrun rrrobot depth_camera_node

Terminal 5: Run the main rrrobot node

  • cd /app/rrrobot_ws/
  • source devel/setup.bash
  • rosrun rrrobot rrrobot_node

Terminal 6: Run the node to spawn random objects onto the conveyor belt

  • cd /app/rrrobot_ws/
  • source devel/setup.bash
  • rosrun rrrobot object_spawner_node

Semi-Automated Process

Terminal 1

In terminal 1, run the script that will build all components and run the nodes. You may need to adjust the sleep times in run_all.sh based on your system's performance such that there is enough time for each component to finish before proceeding.

  • cd /app/rrrobot_ws/
  • ./run_all.sh

Terminal 2

When a new item is spawned after the arm drops off the previous item, the conveyor belt must be manually started again using rosservice call /ariac/conveyor/control "power: 100" so that the item moves to the depth camera and the process can continue. You can do this in a new terminal since terminal 1 is running all of the simulation nodes.

Troubleshooting

If you encounter issues with newline characters when attempting to run scripts, use the dos2unix tool to convert them to linux style newline characters. These errors usually look like /bin/bash^M: bad interpreter: No such file or directory or env: python\r: No such file or directory.

  • sudo apt-get install -y dos2unix
  • dos2unix <file_path>