Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smalltalk (scripting language) interpreter in Java > drive robot #217

Open
i-make-robots opened this issue Jan 4, 2024 · 5 comments
Open

Comments

@i-make-robots
Copy link
Collaborator

i-make-robots commented Jan 4, 2024

Is your feature request related to a problem? Please describe.
Jon would like to drive his robots using Smalltalk "as though it was in a ROS node".
This implies that nodes should talk to each other with the ROS system.

@JonHylands
Copy link

I don't have enough experience with ROS to say whether or not this is true... The current controller of my robots (running on a Raspberry pi) is written in Squeak Smalltalk, and does not have anything to do with ROS.

@i-make-robots i-make-robots changed the title SmallTalk interpreter in Java > drive robot Smalltalk interpreter in Java > drive robot Jan 4, 2024
@i-make-robots
Copy link
Collaborator Author

@JonHylands awesome. Have you got Smalltalk samples of your current work? I'm interested in the API you use to drive motors and read sensors.

@JonHylands
Copy link

For Roz and MicroRaptor, it is very simple - everything other than their respective cameras are on a serial bus. The servos for each robot are Robotis Dynamixel servos, AX-12s to be specific. Each servo has its own unique id (1-252), and they are all daisy chained on a serial bus. Also on this serial bus are a couple STM32F405 boards, which have specific sensors attached (IMU, Optical flow, ToF LIDAR, etc). The 405 boards run MicroPython, and I've written code that allows the 405 to be presented on the bus as just another serial device. Each device on the bus has a control table, and in the case of the 405's, the control table contain sensor values that are updated at some refresh rate (might be 50Hz or 100Hz, I don't remember off the top of my head).

The bus is presented to the Raspberry pi, and thus to Smalltalk, as a serial port, with the comms speed set to one megabit. My code in Smalltalk can query the bus, find out what devices are connected, and talk to each device individually, all over this single serial port.

@i-make-robots i-make-robots changed the title Smalltalk interpreter in Java > drive robot Smalltalk (scripting language) interpreter in Java > drive robot Jan 9, 2024
@i-make-robots
Copy link
Collaborator Author

Great... what does the API look like? At my level all I care about is how to connect your API with mine.

@JonHylands
Copy link

Are you talking about the API for the serial bus, or the robot? The robot doesn't have an API. The serial bus API is well documented by Robotis (https://emanual.robotis.com/docs/en/dxl/ax/ax-12a/) and (https://emanual.robotis.com/docs/en/dxl/protocol1/). My new devices follow the same structure and protocol, although the control table is obviously different.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants