librobotcontrol support for newer boards

Preliminary librobotcontrol support for BeagleBone AI, BeagleBone AI-64 and BeagleV-Fire has been drafted, but it needs to be cleaned up. We can also work on support for Raspberry Pi if UCSD releases their Hat for it.

Goal: Update librobotcontrol for Robotics Cape on BeagleBone AI, BeagleBone AI-64 and BeagleV-Fire
Hardware Skills: Basic wiring, some DC motor familiarity
Software Skills: C, Linux
Possible Mentors: @jkridner, @lorforlinux
Expected size of project: 175 hours
Rating: Medium
Upstream Repository: BeagleBoard.org / librobotcontrol · GitLab
References:

5 Likes

@lorforlinux do we need to swap this on GSoC @ BeagleBoard.org — gsoc.beagleboard.io documentation with something with more mentor and contributor interest?

1 Like

Hello, can you share how can I start working on this project? What can be good first time issues to solve in this project.

gsoc.beagleboard.org maybe?

If you don’t have a board, maybe start by digging through the structure and what needs to be updated to be more Linux-generic and use header mapped I/O, rather than SoC-mapped. You can look at the work-in-progress branches to get an idea of what I mean and the blog posts and documentation on cape compatibility.

You can also look at what it would take to make Robotics Control Library — BeagleBoard Documentation to look more like Robot Control Library: Main Page.

3 Likes

It is mentioned that preliminary support for AI, AI-64 and Fire are given, I checked librobotcontrol/device_tree at master · beagleboard/librobotcontrol · GitHub and couldnt find any .dts files of these boards… I wanted which files haves to cleaned up.

Is it related to interfacing library with linux drivers.

Device tree sources are all at BeagleBoard.org / BeagleBoard-DeviceTrees · GitLab

1 Like

I’m a student and I’ll like to contribute to this project but I don’t own a board.

Hi I want to contribute to this project . will it be in gsoc25?

I’m interested in mentoring it. If we get accepted as a mentoring organization and there is a good proposal on the topic, I can see it getting picked up.

The rcpy Python library should, in my opinion, be integrated into the same project with the C source as part of this. I wouldn’t mind adding some other language bindings, like, perhaps, Rust or Crystal.

1 Like

Would this idea be considered for GSoC 2025?? I have access to a beagle bone black and would like to contribute. What would be a good starting point?

1 Like

@Saiprasad_Patil ,

Here is a starting point: https://gsoc.beagleboard.org/

I posted earlier but this link stands as a defacto for GSoC!

Enjoy

Seth

P.S. Also some rules from GSoC: Google Summer of Code

2 Likes

Checkout the repo, and got the module installed.

debian@BeagleBone:~$ rc_version
1.0.5
debian@BeagleBone:~$ rc_test_drivers

Kernel: 5.10.168-ti-r81
BeagleBoard.org Debian Bullseye IoT Image 2023-09-02
Debian: 11.11

PASSED: gpio 0
PASSED: gpio 1
PASSED: gpio 2
PASSED: gpio 3
ERROR:  ti-pwm driver not loaded for hrpwm0
ERROR:  ti-pwm driver not loaded for hrpwm1
ERROR:  ti-pwm driver not loaded for hrpwm2
ERROR:  ti-eqep driver not loaded for eqep0
ERROR:  ti-eqep driver not loaded for eqep1
ERROR:  ti-eqep driver not loaded for eqep2
PASSED: pru-rproc
ERROR:  uart1 driver not loaded
ERROR:  uart2 driver not loaded
ERROR:  uart4 driver not loaded
ERROR:  uart5 driver not loaded
ERROR:  i2c1 driver not loaded
PASSED: i2c2
ERROR: spi driver not loaded
ERROR:  LED driver not loaded
ERROR:  ADC iio driver not loaded

Currently running on a:
MODEL_BB_BLACK
Robot Control library Version:
1.0.5

I would like to know if I’m going in the right direction and if there are any any starter tasks you’d like me to pick up

1 Like

@Saiprasad_Patil , me. Not necessarily. I am just a user that likes to fiddle and learn for now. I am not a 100% educated in short term. So, longevity to the librobotcontrol!

Good luck. I hope you can get this idea and build ported to newer boards… ARM64 hopefully!

Anyway, there is a lot of work. Look here too: BeagleBoard.org / librobotcontrol · GitLab

I see you have already cloned the repo! Nice work. How are you doing with looking for people to help you along the way or are you fully capable of handling it yourself?

In any light here, I am pleased to see some more dedication to the librobotcontrol library.

Seth

P.S. If you need anything, let me know. I can try to better direct you or pitch in to support the cause or many flying bots and roving rovers. On the older site, there are links to images. Those images will help you differentiate then to now in building…

update

And yes, you are going in the correct direction but the work is needed. Works like building on an ARM64 machine or emulation is needed. See here: GitHub - mcdeoliveira/rcpy: Python Library for Robotics Cape on Beaglebone Black and Beaglebone Blue

That is a much needed library to update in time. I am not 100% sure right now if people would like you to build it and port it to am5729 and/or TDA4VM. Again, I like to pitch in and start already done things, e.g. librobotcontrol. It is a really nice lib that I would like to see stand up to the pressures of everyday computing with openbeagle and beagleboard. Please just remember I may only be able to help in particular circumstances, rules and regulations for GSoC, because of policy and protocol.

1 Like

for rcpy and the updated way Python3 handles things within Debian Distros, and depending on image and kernel, try a venv or SOME_FILE.toml instead of setuptools and/or setup.py

Again…good luck.

1 Like

Hello @jkridner @lorforlinux ! Myself Prithvi Tambewagh, a sophomore studying Electronics and Telecommunications Engg. at VJTI, Mumbai, India. I found librobotcontrol project quite interesting. Consequently I have set up librobotocontrol on a BeagleBone AI-64 board. Can you please provide some insights about the project, like what are the expected outcomes for this project? Also, can you please guide me on what could be some good starting point for this project and where can I find the preliminary support for BeagleBone AI-64?
Thank you!