The main task for this week was to update existing solution and make exercise more realistic and closer to real world applications. From now on, the robot should behave slightly other way.

  1. Pick a pallet from storage room, where new pallets will be delivered.
  2. Place it somewhere on main warehouse
  3. Wait for order to get pallet from warehouse and and move it to delivery room
  4. In other time wait for new tasks in charging region

This week I wasn’t able to fully integrate this idea into the solution, as there were other tasks I stuck with. I have updated world launch, and learnt how to spawn new pallets into the storage room so that they will appear in world for robot to pick-up. I also successfully launched dynamic reconfigure as separate script, and tested it. Worked fine for movement with pallet.

Structure of the behavior where robot goes to particular point in storage room, picks pallet and moves it to storage, as well checks if new pallets have appeared in storage room have been implemented. Additionally, I have made some modifications for current main GUI:


Additionally, I have faced with problems of Actionlib which I am using for sending goals. There are some methods that allow track if goal have been reached, but as everything is running in one thread it causing problems. Currently thinking how I can do some tasks in parallel of main python script.

Moreover, yocs_cmd_vel_mux nodelet have been successfully integrated and now robot can be manipulated both by move_base package and teleop widget in GUI.