Status Report (4/20)

Group Update

The SLAM software, encoder code, and local planner are fully implemented, and now need to be tested all together in time for demo. Maze parts, along with an alpha version of the robot with all the parts together, were constructed.

Amukta’s Update

I helped Kanupriyaa finish implement ICP and mapping. I also constructed the maze parts needed for testing and the demo.

Kanupriyaa’s Update

The ICP was completed and tested with different maze features. The ICP works but has huge error accumulation which prevents an accurate map from being displayed. Going to work on making ICP more optimized this week.

Tiffany’s Update

  • Ordered parts arrived, including the aluminum channels and cardboard pieces for the maze, 5V to 12V step up adapter, DC barrel jack adapter, portable phone charger (our power source), and caster wheels.
  • I updated measurements for the CAD file and lasercut various cardboard prototypes for RPLidar mount, Raspberry Pi mount, and caster wheel mount. The last prototype from this week has issues with balance, so I will need to make the robot chassis longer. Also, the cardboard mounts for the caster wheels bend under stress, but I don’t anticipate this being an issue when I cut the final version out of compressed wood. I also put all of components on the robot to figure out a compact way to mount everything in the final wireless version.
  • I also bandsawed the 8 ft long pieces of aluminum channels down into 6 inch pieces, prototyped a few maze pieces and then assembled several more maze pieces with Amukta.
  • On the electrical side, I tested the 5V to 12V adapter to make sure it is outputting 12V. I ran into two problems with adding the adapter to the system. The adapter’s current limit is barely enough to power both motors at 60% speed, so I had to limit the max motor power. This does not impact the overall performance though, since the 100% motor speed (350 rpm) was much faster than our project requirements called for. Secondly, I ordered a male DC barrel jack adapter instead of the female adapter so I had to search campus for a female adapter. In the meantime, the robot is still being powered by the 12V wall power supply.

Status Report (4/13)

Group Update

We’re behind on ICP implementation and integrating that with the encoder data. Our focus in the next week is constructing the entire robot and doing the above.

Amukta’s Update

This week I worked on creating an RPLidar node that detected hallways (to be used in local planner). I also met with Kanupriyaa to work on ICP.

Kanupriyaa’s Update

I completed the ICP code this week and met with Amukta to connect with the LIDAR and debug the code.

Tiffany’s Update

This week I researched and ordered parts necessary to build the maze and some additional parts for the robot (caster wheels, power supply …etc). I also updated the CAD of the upper layer of the robot body for mounting the RPLidar to, so that the full robot, including the new caster wheels, can be assembled on Monday and used to measure the error rate of the encoder. I am in the process of debugging the transform frames outputted from the odometry data, since these tfs are incorrect right now.

Status Report (3/30)

Group Update

  • This week, we’re preparing for the midpoint demo.
  • We’re slightly behind on integration, so we will be demoing the motor controllers and the ICP portions separately.

Amukta’s Update

  • Worked with Kanupriyaa on the ICP code.
  • Next week, I will visualize and prepare the code for demo, and write the mapping code.

Kanupriyaa’s Update

  • Finished writing the ICP code and integrated it with Amukta’s code.
  • Next week will be building and integrating with the mapping node and the UI.

Tiffany’s Update

  • Finished testing motor control and migrated into a ROS package.
  • Added subscriber to motor control for demonstrating motor control next Wednesday in class.
  • Set up ssh and git on raspberry pi (this took several hours as I kept running into configuration issues, since we weren’t using the default Raspbian image).
  • Discussed with team on how to implement global planning and data transmitted between SLAM and path planning. Figured out algorithm for global planner in detail, will start implementing this weekend. I’m now two weeks behind on the global planner, but hopefully with the algorithm settled implementation should not take too long.

Status Report (3/23)

Group Update

  • Overall, we are on track to have a moving robot and basic navigation by the first demo in about two weeks.

Amukta’s Update

  • I spent the week experimenting more with the RPLidar SDK and output data, and beginning to work on ICP. I am currently working on closest point approximation using point to plane scan matching.
  • Over the past two weeks, I finished up the visualization web client and server, which should clear up 5-10 days I set aside in April according to the Gantt chart. See the code here.
  • I am on-track, as I’ve cleared up some tasks ahead of time.

Kanupriyaa’s Update

  • I spent the week setting up the development for the ICP, the VMWare software and Ros for the development.
  • I made the algorithm for ICP and divided the work amongst Amukta and me for the development. Algorithm consists of minimization of ICP error function using point to plane matching.
  • Next week I will implement the minimization function and get the final ICP translation.

Tiffany’s Update

  • I spent a few days this week finding components, designing a CAD file of the robot using SolidWorks, and assembling a prototype that can be used for testing. The final robot will have an additional layer with the same shape for mounting the RPLidar, but I did not lasercut this piece yet since Amukta was working with the RPLidar this week.
  • Additionally, I wrote a ROS package to send motor commands to the motors. I also added distance/angle calculations for getting the robot from point A to B, and P(ID) control for the base and differential motor commands (left motor = base + differential; right motor = base – differential.
  • I am one week behind with writing the global path planner, due to my time spent previous weeks on researching path planning and writing the detailed design report.

 

Status Report (3/09)

Group Update

  • This week is short due to mid semester break and spring break (the Gantt chart accounts for this).

Amukta’s Update

  • I spent the week experimenting more with the RPLidar SDK and output data. This week was shorter than usual due to mid-semester break and spring break.
  • I will be working on the visualization UI over break, since I won’t need access to hardware to do so.
  • I am still on-track, since we did not schedule any work to be done over spring break.

Kanupriyaa’s Update

As I left on Wednesday evening (middle of the week) for Spring break I accounted for the time that I wouldn’t have this week and distributed it to other weeks.

Tiffany’s Update

  • This week I tested the motor’s stall current to make sure it’s within the Raspberry Pi motor hat limits (the stall current was not specified by the vendor), and tested the Adafruit motor control library. The motor is rated for 12V but is quite fast even at 5V, so I decided to just power the motor with the same 5V power source as the Raspberry Pi. Since this motor seems to work for our project, I ordered a second one.
  • Since I lost the micro SD card we were originally using for the Raspberry Pi last week, the motor control code could not be tested last week. We ordered a new SD card, which arrived this week, and I set up the Ubuntu + ROS environment and tested the motor controls.

Status Report (3/02)

Group Update

Slightly behind schedule for motor/encoder IO development on Raspberry Pi due to missing micro SD card, and slightly behind on implementation of SLAM due to work on design presentation and report.

 

Amukta’s Update

  • This week, I mostly worked on the design presentation and design report.
  • I set up the RPLidar and tested its input. I also set up an Ubuntu VM and ROS repo for the entire team to use: https://github.com/amnayak/slambot-ros

  • I continued to work on the visualization web app.
  • Next week, I will be working on implementing loop closure.

Kanupriyaa’s Update

ICP Algorithm Building

After we changed the entire system architecture and decided to use Odometry to build the data, I  stopped work on the data probability for localization and continued work for building the new SLAM Algorithm. I researched and read 26 papers on SLAM, ranging from ICP, Graph based SLAM to the different components that go into SLAM to stitch together a design we have made on our own. We have decide to just use ICP in a Graph based SLAM and later optimize the graph for better accuracy.

Tiffany’s Update

Maze Design & General Tasks

I brainstormed ways to design the maze to make it modular and decided on building the maze in 1x1x1 ft sections that can be reconfigured to form different mazes.

I also updated the Gantt chart to reflect changes to our implementation and added milestones.

Motor/Encoder IO ROS Nodes

The motor and encoder IO ROS nodes were suppose to have been completed this week. I have written ROS nodes for reading and writing to the motors and encoders, but cannot test these since I lost the micro SD card for the Raspberry Pi. So I am slightly behind on this task, but the nodes can be tested once the new SD card arrives on Monday and is set up.

Next Week

  • Test motor and encoder IO nodes
  • Start work on path planning (coordinate with Kanupriyaa on ROS topics)
  • Build maze segments