My experience and work during my internship

Hello Stretch Community!

I’m Jesus Rodriguez, an undergraduate student at Tecnologico de Monterrey in Mexico, currently interning with Hello Robot. This semester has been an exciting journey, allowing me to enhance my skills, particularly in ROS1 and learning more about ROS2—a domain I hadn’t explored before. Through this post, I will be guiding you through the work that I’ve done during my internship, skipping the internal work of course.

Ported tutorials from ROS1 to ROS2

My primary objective was to leverage my recent ROS1 skills to create valuable content for everyone. It was a surprise for me when I needed to port the ROS1 tutorials and make them ROS2 tutorials. It was a hard first step but definitely a solid one that helped me understand how I need to do things. You can check the files changed from our Stretch tutorials repo on Github!

Basic Jetson Tutorials

My recent experience was using the Jetson Nano in one of my final projects in my university, so I wanted to create some basic tutorials for people that want to start using Jetson with their own Stretch. From the initial flashing process to establishing connections with your Stretch, the tutorials cover the essentials. Additionally, there are some tutorials on inference and real-time vision in the stretch_tool_share repository.

Pdoc documentation

To keep the learning momentum going, I decided to dive into the stretch_body files for my next project. For this work I needed to understand the low level architecture of Stretch, it was crucial to my goal of explaining everything inside these codes. Our aim was to implement pdoc, an API documentation tool that would bring order to the complexity of the main files in stretch_body, so that everyone can understand what is happening inside the classes.

Unfortunately, the documentation didn’t quite make it to the main repo. But don’t worry, you can still check out the docs on the feature/pdoc branch. I’ve included some straightforward instructions on how to generate this documentation. If you’re curious about trying out pdoc for your own projects, check the pdoc documentation. For a more targeted exploration, you can delve into the stretch_body python files.

Contact detection demo

In November, my focus shifted towards collision avoidance within Stretch. I embarked on a demo project, modifying the initial plan to create a contact detection demo, here I manipulate the velocity from the Dynamixels servo motors from the wrist to stop when in contact with an obstacle and bump a little back, just like the contact detection from the prismatic joints with the difference that I realized this in the software level. Check out the details in my forum post within the share category Implementing contact detection for dynamixels.
video_hr_3

IMU Mobile Base TF Frames

For those who struggled to visualize TF Frames in ROS1 or ROS2 related to the imu_mobile_base topic, the struggle is now over. I recently incorporated these frames into both Noetic and Humble, depending on what you are working on you can now pull the latest code on Stretch. You can check the PR in ROS1 or the PR in ROS2 to see the changes that have been made.

Stretch Mobility with OpenAI

As a culmination of my internship, I delved into integrating OpenAI’s API with Stretch. This project allows you to input motion commands in natural language, transforming them into actionable instructions for Stretch. Just remember that ChatGPT and the API may present some occasional errors, still, the experience is generally good. Feel free to try it yourself, check out the stretch_openai_chat tutorial.

This semester I’ve learned a lot that has surpassed my initial expectations. Stepping into the dynamic environment of a startup, especially one as exceptional as Hello Robot, has been a transformative experience. Working on meaningful projects and collaborating with talented individuals has not only enhanced my technical skills but also provided invaluable insights into the real-world applications of robotics. As I reflect on these past few months, I’m filled with gratitude for the opportunities to contribute to innovative initiatives and be part of a community that values continuous learning. This journey has undoubtedly shaped my perspective, and I’m excited to carry these lessons forward into the next chapter of my academic and professional endeavors. I thank all the Hello Robot team for their support and mentorship.

Happy holidays!

Jesus Rodriguez

3 Likes

An incredible output in just four months! Thank you for interning with us Jesus!

1 Like