Matthew Coyle’s Status Report for 12/07/24
- What I Accomplished This Week
- Lidar Odometry Setup: Successfully configured the Lidar to publish odometry data to the
/odom
topic in ROS2. This lays the groundwork for utilizing SLAM Toolbox and starting real-world room mapping. - Code Recovery and Rewriting: After losing significant portions of our code during an SD card reflash last week, I rewrote critical functionality, including navigation and motor control modules. This effort ensured the project remained on schedule.
- Final Presentations: Collaborated with the team to prepare our final presentation, highlighting key milestones and project achievements.
- Unit Testing: Began initial unit tests with the robot, verifying subsystem functionality, including odometry, motor responsiveness, and basic navigation.
- Lidar Odometry Setup: Successfully configured the Lidar to publish odometry data to the
- Schedule Status
- On Schedule: Despite the code loss setback, I have recovered the critical pieces, and the project is progressing as planned. Integration and testing remain the focus for the upcoming week.
- Plans for Next Week
- Integrated Mapping: Validate Lidar odometry and SLAM Toolbox by generating accurate room maps.
- Final System Testing: Conduct full-system tests to verify mapping, navigation, and obstacle avoidance.
- Prepare for Demo: Focus on rehearsing and finalizing details for the public demo, ensuring all components function seamlessly.
Matthew Coyle’s Status Report for 11/30/24
- What I Accomplished This Week
- Locomotion Code: I completed the locomotion code, enabling the robot to respond to keyboard controls using ROS Twist messages. This allows for direct manual control during testing and debugging.
- Integration with Path Planning: The robot can now accept vector commands from Kevin’s path-planning algorithm. This marks a key milestone in integrating navigation functionality with real-world movement.
- Team Collaboration: Worked with the team to address integration challenges, specifically with SLAM Toolbox, which has proven difficult to implement within our current ROS setup.
- Schedule Status
- Slightly Behind: The challenges with SLAM integration have caused a delay in validating our mapping and localization. However, we’re actively exploring alternative ROS tools and seeking expert guidance to overcome this hurdle.
- Plans for Next Week
- SLAM Integration: Continue troubleshooting SLAM Toolbox and explore alternative ROS packages, such as those used by Turtlebots, to achieve robust mapping and localization.
- Consultation: Meet with Professor Ziad Youseffi to leverage his expertise on SLAM and ROS for robots.
- System Validation: Begin testing full-system functionality, focusing on navigation accuracy and path execution.
Learning New Tools and Knowledge
As we progressed with our project, I found it necessary to learn the following:
- ROS Twist and Locomotion Control:
- I needed to understand how to send and process Twist messages in ROS to control the robot’s movement. This involved learning about ROS topics, publishing commands, and managing real-time communication between nodes.
- Learning Strategies: I used a combination of online tutorials, ROS documentation, and YouTube videos. For example, I followed detailed examples from the official ROS Wiki and watched implementation guides specific to TurtleBot to gain practical insights.
- SLAM Toolbox and Mapping in ROS:
- Integrating SLAM Toolbox required understanding its configuration and the challenges of managing ROS parameters and dependencies.
- Learning Strategies: I explored online forums like ROS Answers, where community members discuss similar issues, and read GitHub repositories with working examples to understand common pitfalls and solutions.
- Team Integration and Debugging:
- Debugging involved understanding how to merge components like path planning and locomotion. This required knowledge of vector math for commands and integrating multiple ROS nodes.
- Learning Strategies: I focused on hands-on experimentation, testing individual modules in isolation, and then working with Kevin to ensure seamless communication between the path-planning algorithm and the robot’s movement system.
Reflection on Learning Strategies
Using informal learning strategies, such as tutorials, forums, and documentation, allowed me to quickly adapt to new challenges without formal instruction. By experimenting with code and seeking community advice, I developed the skills needed to implement and debug critical components. These methods were particularly effective for problem-solving in a fast-paced, project-driven environment.
Matthew Coyle’s Status Report for 11/16/24
1.What I Accomplished This Week
•CAD Redesign: I redid all CAD models to replace weaker screw mounts with bolts and nuts for improved durability and support. After making the adjustments, I reattached all components to the robot.
•System Integration: Connected the Arduino and Jetson Orin Nano, successfully enabling communication between the two systems. The robot is now running ROS, with the Jetson sending directional commands to the Arduino for motor control.
•Remote Connection Setup: Added remote connection capabilities to both microcontrollers, making it easier to upload code and perform updates without physical connections.
•Fully Assembled Robot: The robot is now fully assembled and driving, marking a significant milestone in the project.
2.Schedule Status
•On Schedule: With the hardware fully assembled and driving functionality in place, we’re moving into the software refinement stage, focusing on odometry and path planning.
3.Plans for Next Week
•Odometry Implementation: Get odometry fully operational to track the robot’s position accurately.
•Path Planning Integration: Enable the robot to accept commands from the path-planning algorithms and execute them smoothly.
•Testing and Debugging: Begin testing the system under real-world conditions, refining navigation and communication as needed.
Matthew Coyle’s Status Report for 11/09/24
- What I Accomplished This Week
- Motor and Wheel Setup: I received all remaining parts for the wheels and motors and successfully prototyped the motor setup, ensuring they work as expected.
- Arduino Tester Code: I wrote and implemented tester code for the Arduino to control the motors. This allowed me to verify that all connections are functional and that the hardware components communicate correctly.
- Hardware Setup Complete: With all components connected and tested, the core hardware setup is complete and ready for final assembly.
- Schedule Status
- On Schedule: All hardware is now fully set up, and we’re moving toward attaching the motors to the chassis and finalizing the motor control code. We remain on track to start testing motor-driven navigation soon.
- Plans for Next Week
- Motor Attachment: Secure the motors onto the chassis, completing the drive system.
- Finalize Motor Code: Finish developing the motor control code on the Arduino to enable smooth and responsive driving.
- Initial Movement Testing: Begin testing the robot’s movement and turning to ensure reliable performance under real-world conditions.
Matthew Coyle’s Status Report for 11/2/24
1.What I Accomplished This Week
•Motor and Wheel Setup: I received the motors and ordered all of the wheels needed for the robot. With the motors now on hand, I started planning the layout and assembly for the drive system.
•Battery Connector Issue: While assembling, we encountered an issue with incompatible port sizes between the battery connectors and the Jetson. To address this, I ordered the necessary connectors to ensure compatibility and plan to complete the wiring once these arrive.
•Chassis Fabrication: I laser-cut the robot’s body based on the CAD model I completed earlier. I then began laying out and positioning each component, ensuring everything fits securely on the chassis. This prep work will streamline final assembly and help us move quickly toward testing.
2.Schedule Status
•On Schedule: Despite the connector issue, we are still on track. With the body fabricated and motors in place, we’re moving into final assembly, aiming to have the robot operational by next week.
3.Plans for Next Week
•Complete Assembly: Once the battery connectors arrive, I will finish assembling the power connections and secure all components onto the chassis.
•Initial Drive Testing: I aim to conduct our first drive test next week to verify motor functionality and ensure the robot can move and turn as expected.
•Fine-tune Navigation: Begin testing basic navigation and obstacle avoidance once the robot is driving, preparing for full navigation tests with the Lidar and Jetson.
Matthew Coyle’s Status Report for 10/27/24
- What I Accomplished This Week
- Motor Delay Issue: This week, I helped manage the impact of the motor delay. The motors were accidentally shipped to the wrong address, so Quinn had to reorder them, which has pushed back our timeline for full assembly and testing. While waiting, I’ve focused on tasks that don’t require the motors, ensuring we can hit the ground running when they arrive.
- Odometry vs. Lidar Localization: Through discussion and testing, we determined that using odometry for location tracking is redundant given the capabilities of our Lidar-based SLAM system. This decision simplifies our design and reduces potential sources of error from wheel slippage or sensor drift.
- Turn Radius Calculations: I’ve been working on calculating the turn radius of the robot to ensure smooth and precise navigation, especially in tighter spaces. This will help us fine-tune the path-planning algorithms and improve the robot’s overall performance.
- Schedule Status
- Slightly Behind: The motor delay has caused a minor setback, but we’ve adjusted by focusing on software-side work, like improving path planning and sensor integration. Once the motors arrive, we plan to proceed quickly with the hardware assembly and catch up to our original timeline.
- Plans for Next Week
- Continue Turn Radius Calculations: Finalize the turn radius and integrate it into our path-planning algorithms.
- Prepare for Motor Integration: As soon as the motors arrive, I’ll help assemble the robot and ensure the motors function correctly with the rest of the hardware.
- TechSpark Production: Coordinate with TechSpark to begin final manufacturing of the chassis so we can start full assembly without further delays.
- Test Navigation Algorithms: Start testing the navigation system with simulated motors to validate the path-planning before the real hardware is installed.
Matthew Coyle’s Status Report for 10/12/24
- What I Accomplished This Week
- Parts Ordering and Management: Over the break, I finalized and placed orders for key components that were still needed, ensuring we stay on track for assembly. I closely monitored deliveries and confirmed the arrival of the 2D Lidar sensor and other smaller parts.
- Initial Assembly Work: I spent time experimenting with the assembly of the components we have so far, laying out how the parts will fit together within the chassis. This early work will help streamline the final assembly process once all parts, including the motors, are delivered.
- Software and Hardware Integration: Messed around with ROS over the break and tried to play around with the different libraries and nodes to get a better understanding of what we have to do.
- Schedule Status
- On Schedule: Everything is progressing according to plan. The Lidar sensor is working, and the preliminary layout and integration steps I completed over break will help us move quickly into full assembly once all components arrive.
- Plans for Next Week
- Chassis Production: I’ll work with TechSpark to begin manufacturing the robot chassis as soon as possible.
- Full Assembly: Once the motors arrive, I’ll focus on assembling all hardware components and integrating the motors into the system.
- Testing and Calibration: After assembly, I plan to run initial tests to verify the robot’s movement and obstacle detection, ensuring the motors, battery, and sensors work together seamlessly.
Matthew’s Status Report for 10/05/24:
1.What I Accomplished This Week
- CAD Work: I made significant progress on the 3D CAD model of the robot. This week, I refined the design, focusing on hardware placement and ensuring proper spacing for components like the motors, battery, and Lidar. The model is ready for the next stage, which includes preparing for manufacturing with TechSpark.
- Part Orders: I finalized the selection and placed orders for the Lidar sensor (Slamtec RPILidar A1M8) and other remaining components not previously listed in the Bill of Materials. The orders include motor drivers and the DC-DC converter. Once these arrive, we can move into assembly.
- Battery Selection: I selected the 12V 5200mAh Li-On battery, which will provide sufficient power for the motors, Jetson Orin Nano, and other components. The higher capacity ensures we meet our goal of at least one hour of runtime, with a balance between power and weight for optimal performance.
- TechSpark Coordination: I’ve made arrangements to begin the production of the robot chassis at TechSpark as soon as all parts arrive, ensuring we stay on track for assembly and testing.
- 2.Schedule Status
- On Schedule: All tasks, including CAD design, part ordering, and coordination with TechSpark, are on schedule. We are awaiting part deliveries, after which we’ll begin the physical assembly of the robot.
3.Plans for Next Week
•CAD Finalization: Complete any final adjustments to the CAD model as necessary based on the hardware components received and prepare the design for production at TechSpark.
•Begin Assembly: Once the parts arrive, start assembling the hardware components, beginning with the motors and Lidar integration.
•Testing: After assembly, I plan to begin testing the motors and Lidar for initial functionality, focusing on navigation and obstacle detection performance.
Matthew’s Status Report for 9/28/24:
1.Accomplished This Week
- Motor Calculations: I reworked the motor torque calculations, ensuring they meet the requirements for moving the robot on the carpet. Factoring in the robot’s weight (3.63kg), carpet friction (0.7), and desired acceleration (0.5 m/s in 5 seconds), I calculated each motor would need at least 1.275 Nm of torque. The motors will run at approximately 95.5 RPM to meet speed requirements.
- Power Calculations:
- I completed the power consumption calculations for our robot, starting with the Nvidia Jetson Orin Nano, which consumes about 15W.
- Next, I calculated the power required for the motors, each consuming 12.75W, totaling 25.5W for both.
- Motor Power Consumption: The motor torque and speed remain the same: Torque: 𝑇=1.275Nm
- T=1.275Nm, Angular velocity: 𝜔≈10 rad/s,
- Power per motor: =1.275×10≈12.75W(per motor)
- Two motors together consume 12.75×2=25.5W
-
- Adding the motor and Jetson power gives a total consumption of 40.5W.
- Using a 3500 mAh (12V) battery, I calculated the available energy as 42 Wh, resulting in a runtime of approximately 1.04 hours (62 minutes).
- Lidar Sensor: I assisted in the final decision to use a 2D Lidar and helped place the order for the sensor.
- CAD Work: I began working on the 3D CAD model of the robot’s body to ensure proper placement and spacing for components.
2. Schedule Status
- On Schedule: My progress remains on schedule. Motor and power calculations were completed on time, the lidar sensor was ordered, and CAD work has started. Next week, I’ll focus on further refining the hardware integration process.
3. Plans for Next Week
- Battery Selection Finalization: Finalize the battery choice based on power needs and runtime expectations, with a focus on ensuring the selected battery meets power and longevity requirements.
- CAD Design: Continue refining the robot body design in CAD, preparing for manufacturing.
- Lidar Testing: Once the 2D Lidar arrives, I’ll work with the team to integrate it into the navigation system and test its performance.
- Team Collaboration: I will assist with motor driver selection and ensure all components are integrated efficiently.
Matthew’s Status Report for 9/21/24:
1. Accomplishments This Week
This week, I focused on the design aspect of the robot, achieving the following milestones:
- Motor Selection: After conducting a detailed motor analysis, I selected the motors that will power our robot. This included evaluating torque, speed, and power consumption to ensure the motors aligned with our project requirements.
- To move the robot, we need to calculate the required torque. I assume:Robot weight: 4 kgWheel radius: 0.05 m I can calculate the force needed to move the robot as:Force (N)=Mass (kg)×Gravity (m/s2)Force=4×9.81=39.24NNow, the required torque:Torque (Nm)=Force (N)×Radius (m)Torque=39.24×0.05=1.96NmEach motor must provide at least 1.96 Nm of torque to move the robot.
- Motor Selected
- Motor Analysis
- Computer Selection: After research and discussions with the team, I finalized the Nvidia Jetson Orin Nano as the onboard computer for our robot. Its processing capabilities will be key in handling the data from the 3D Lidar and performing efficient path planning.
- Purchase Forms: I completed the necessary purchase forms for the Nvidia Jetson Orin Nano to ensure the timely acquisition of these components.
- Group Collaboration: As a team, we successfully identified the 3D Lidar sensor we will use. We plan to consult with the TA during the next class to confirm our choice and ensure it’s a good fit for the project.
2. Schedule Status
I am currently on schedule with my tasks for the project. The motor and computer selections were completed within the anticipated timeframe, and purchase forms have been submitted. My focus now shifts to sourcing the remaining hardware components such as batteries and motor drivers.
3. Plans for Next Week
Next week, I plan to accomplish the following:
- Hardware Sourcing: Finalize the selection of batteries and motor drivers for our robot to ensure the remaining critical components are in place.
- 3D CAD Design: Begin designing the robot body in 3D CAD and collaborate with TechSpark to start the manufacturing process.
- TA Consultation: Along with the team, meet with the TA to discuss the selected 3D Lidar sensor and confirm its viability for our mapping and path planning needs.