- Add page links at the top of each website page - Add link to draft video to home.md - Fix links that don't point to files in the docs folder to point to file in GitHub repo - Add instructions for using run_all.sh script to gear.md - Add documentation.md to describe file structure and what each of the files are for
5.7 KiB
GEAR Simulation
Page Links
Table of Contents
- Running GEAR Container
- Building & Running Simulation
- Controlling Sample Environment
- Running Full Simulation
Running GEAR Container
- On your local system, go to
docker_env
foldercd /PATH/TO/RRRobot/docker_env
- Start GEAR docker container
docker-compose run --rm gear
Building & Running Simulation
- Source ROS Setup
source /opt/ros/melodic/setup.bash
- Run Simulation
- Sample Environment
roslaunch osrf_gear sample_environment.launch
- See controlling sample environment for more information.
- Final Simulation
- See running full simulation for more information.
- Sample Environment
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.