Video Day
I borrowed the camera from 109 on Friday, and today I’m shooting a video for Ford.
What I’ve done today:
- Choreographed arm motion in RAPID. The arm has a stow position (straight up) and a pick/place position (with the flange right above the table). The sequence of the arm motion is
- Stow arm
- Wait while robot approaches table
- Move to grasp position.
- Wait to simulate grasping
- Move arm to stow position
- Wait while robot drives to other table
- Move to drop position (same as grasp)
- Wait to simulate dropping
- Stow arm
- Created a new branch in my ROS repository called ford_demo for this work.
- Created a new package in cwru_abby called abby_choreo. It contains a choreographer node, which I made by modifying the tour guide executive to create a simple choreographer that loads a sequence of waypoints from a YAML file and sends them to the robot's steering algorithm.
- Created launch files for the choreographer that loads the base, the choreographer, and the nav stack. The map/AMCL are not running; I'm running on pure odometry.
- Temporarily replaced the xBEE modem in the receiver with a tethered e-stop because I won't have time to fix that before I can shoot this video.
- Discovered that Abby wasn't booting because I had shut her off during boot (this causes grub to require input in the boot menu). I reconfigured grub to boot without input, even if a previous boot failed.
- Updated the OS on Abby (it needed doing)
- Pushed code to Abby (see Deployment Method below)
Deployment Method
I’ve come up with a somewhat hacky method of deploying code to Abby, despite the fact that she has no internet access unless I wire her into the wall. Since I can SSH into her, I added her as a git remote on my laptop. On Abby, I set receive.denyCurrentBranch to warn in the cwru-ros-pkg repo, which allows me to push to her even though the repo isn’t bare. Of course, the newly pushed code isn’t checked out. In order to do that, I need to run git reset –hard on Abby after pushing to her from my laptop. I could also set up a post-receive hook to do this for me, but I haven’t had a chance.