Our code can be found at: https://github.com/afearing/fall-20-106a-robotics/tree/new-camera-humanbot
This project was entirely software based. No hardware was used.
baxter.urdf.xacro This file contains the specifications to spawn Baxter. It defines his joints, links, and physics.
baxter_base.urdf.xacro Further defines Baxter's joints. Corrects the positions of the head camera.
baxter_base.gazebo.xacro Further defines Baxter's joints.
arucobaxter_bothmodels.launch - Launches baxter, HumanBot, and the test aruco tag launch files. Includes baxter_world.launch, arucobaxter_mannequin.launch, aruco_detect.launch.
arucobaxter_mannequin.launch - Spawns the HumanBot in Gazebo at a specific location.
baxter_world.launch Spawns Baxter in gazebo.
move_group_xacro.launch Launches the move_group node such that Baxter can be controlled.
move_group_urdf.launch Launches the move_group node such that Baxter can be controlled.
arucotag1.dae Defines a 3D model of an aruco tag.
6x6_1000-1.png is the mesh that gives the pattern on the aruco tag.
aruco_broadcaster.py This file takes in the aruco tag coordinates that have been detected and transforms them from the aruco tag frame to the head camera frame.
aruco_detect ROS package that detects the pose of aruco markers.
aruco_path_test.py Motion plans for Baxter. Right now this file is used to command Baxter manually, however there is code for taking in the location of the aruco tag and use it to plan Baxter's motion to the tag. Because of the challenges with finding the aruco tag position, we did not focus on planning Baxter's motion.
path_planner.py This defines the motion planning for Baxter.
MoveIt! ROS motion planning package.
09-publishjoints.urdf.xacro The code here defines the joints, links, and physics of HumanBot.
The photo above displays all commands needed to replicate the Baxter-HumanBot environment described in this project. First the arucobaxter_bothmodels.launch file is used to launch both Baxter and the HumanBot. Following that the robot is enabled along with joint_trajectory_action_server.py. This allows the MoveIt pathplanner to get info on the joint states of Baxter and interact with its joints to move them into the target configurations. MoveIt is then launched using the right and left arm of Baxter. Lastly the aruco_path_test.py script is run to connect all components of the project by subscribing to the fiducial_transforms topic of the aruco_tag thanks to the aruco_detect package, this pose is transformed to the base frame and is finally sent to MoveIt for path planning. The full process is depicted below.
1. Baxter and HumanBot are spawned in Gazebo.
2. Aruco tags on HumanBot are detected using Baxter's head camera.
3. Baxter moves towards the aruco tags. At this point Baxter is moved using manual control but the aruco tag location can be correctly determined using Baxter's head camera.
4. Baxter relocates HumanBot's arms into a T pose.
Copyright © 2020 Yoga Pose Robot - All Rights Reserved.
Powered by GoDaddy