Assignment 3: Obstacle Avoidance
Python OnlyIn assignment03/src/assignment03/vector.py fill in the bodies for three functions.
ROS PythonIn assignment03/src/avoid.py, write a node that subscribes to laser messages (/base_scan) poses (geometry_msgs/PoseStamped on topic (/move_base_simple/goal) and odometry (Odometry msgs on topic /odom) and publishes velocity commands (Twist messages on /cmd_vel). The robot should attempt to move itself toward the current goal using the potential fields model.
You should also set up parameters for the power and scaling factors for laser readings and the goal. You will have to tune these parameters to get the desired behavior.
Testing Your CodeThere is a new package, navigation_worlds which has several worlds to test your navigation functions in. You should first test your goal seeking behavior with empty.launch. You can then move onto more complicated scenarios with dodge.launch and zig.launch. You specify the goal by selecting the "2D Nav Goal" button in RViz, and clicking and dragging at the goal pose you want. This also allows you to specify an orientation, which you do NOT need to account for in this lab.
Due Date: March 30, 2015, 11:59pm CST.