Embedded Motion Control 2014 Group 3
Group Members
Name: | Student id: |
Jan Romme | 0755197 |
Freek Ramp | 0663262 |
Anne Krus | 0734280 |
Kushagra | 0873174 |
Roel Smallegoor | 0753385 |
Janno Lunenburg - Tutor | - |
Time survey
Link: time survey group 3
Planning
Week 1 (28/4 - 4/5)
Finish the tutorials
Week 2 (5/5 - 11/5)
-
Software
Overview
In the overview the different packages (dotted boxes) and nodes (solid boxes) are displayed. The topics are displayed at the sides of the nodes.
LaserProcessing
LaserData from Pico
The data from the laser on pico is in lasercloud format. This means that the data is represented in an array of distances. The starting angle and angle increment are known. This means we have the distances from laser to objects for a range of angles.
LaserCloud to Pointcloud
Because we are going to fit lines to the walls, it would be easier to have tha data in Carthesian Coordinates. In this node the laserData is transformed in a PointCloud, which is published on the topic. It is also possible to filter the data in this node when needed. For now all data is transformed into the PointCloud.
Safety
The safety node is created for testing. When something goes wrong and Pico is about to hit the wall the safety node will publish a Bool to tell the strategy it is not safe anymore. When the code is working well safety shouldn't be needed anymore.
Notes
- Pointcloud X,Y - Remove negative X points - Fit lines
- Select closest and parallel in X direction lines (one with Y>0 one with Y<0), the left en right wall - Y of waypoint = average of endpoints of 2 parallel lines - ang.z = sign(Yw)*Yw^2*tunefactor
- If 2 parallel walls can be found, drive in X direction - No walls? Crossing.