![]() |
andino_firmware package from andino repoandino_base andino_bringup andino_control andino_description andino_firmware andino_gz_classic andino_hardware andino_navigation andino_slam |
|
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | BSD Clause 3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Ekumen-OS/andino.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-11-24 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
The andino_firmware package
Additional Links
No additional links.
Maintainers
- Franco Cipollone
- Javier Balloffet
Authors
No additional authors.
andino_firmware
Firmware code to be run in the arduino microcontroller for proper control of the motors of the robot.
Connection
Check encoder_driver.h
and motor_driver.h
files to check the expected pins for the connection.
Installation
Verify and Upload andino_firmware.ino
to your arduino board.
Description
Via serial
connection (57600 baud) it is possible to interact with the microcontroller. The interface is described in the commands.h file. Here are the most used commands:
- Get encoder values:
'e'
- Set open-loop speed for the motors[pwm]
'o <left> <right>'
- Example to move forward full speed:
'o 255 255'
- Range
[-255 -> 255]
- Example to move forward full speed:
- Set closed-loop speed for the motors[ticks/sec]
'm <left> <right>'
- Important!: See the
Test it!
section.
- Important!: See the
- Set PID values:
'u <kp> <kd> <ki> <offset>'
Note: Remember the carriage return character at the end of the message.
Test it!
A serial port connection must be created at 57600 bauds. You can use the serial monitor from Arduino IDE for example.
-
Open loop verification:
- Send
o 255 255
to go full speed - Send
o 0 0
to stop it.
- Send
-
Read the encoders
- Send
e
to get the encoders values.
- Send
-
Get the ticks per revolution of your motor.
- First set the encoders to zero, (reeboting with
r
). - Then rotate your motors as many revs you want,(say 10 for example) and then divide the encoder ticks per the number of revs. -> Then you get the ticks per revolution. Save this value, it is calibration for the control loop.
- First set the encoders to zero, (reeboting with
-
Closed loop verification
- Send
m <tps> <tps>
wheretps
stands forticks per second
. For example if your motor-encoder system gets 700 ticks per revolution then sendingm 700 700
will rotate both motors at 1 rev per sec. (~3.14rad/sec)
- Send
CHANGELOG
Changelog for package andino_firmware
0.1.0 (2023-10-09)
- Don\'t send stop constantly (#150)
- Make sure to initialize motor speeds (#149)
- Adds package structures to firmware and hardware. (#133)
- Add PCInt class (#131)
- Improve PID class (#128)
- Add PID class (#125)
- Refactor PID module (#124)
- Replace include guard in hw.h with pragma directive (#126)
- Remove blank line (#127)
- Add Motor class (#108)
- Move pin definitions to hw.h header file (#107)
- Add ClangFormat config file (#106)
- Add PlatformIO support (#86)
- Contributors: Franco Cipollone, Gary Servin, Javier Balloffet
Wiki Tutorials
See ROS Wiki Tutorials for more details.
Source Tutorials
Not currently indexed.
Dependant Packages
No known dependants.
Launch files
No launch files found
Messages
No message files found.
Services
No service files found
Plugins
No plugins found.
Recent questions tagged andino_firmware at answers.ros.org
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.