![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged furuta_pendulum_hardware at Robotics Stack Exchange
![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged furuta_pendulum_hardware at Robotics Stack Exchange
![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged furuta_pendulum_hardware at Robotics Stack Exchange
![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged furuta_pendulum_hardware at Robotics Stack Exchange
![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged furuta_pendulum_hardware at Robotics Stack Exchange
![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged furuta_pendulum_hardware at Robotics Stack Exchange
![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged furuta_pendulum_hardware at Robotics Stack Exchange
![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged furuta_pendulum_hardware at Robotics Stack Exchange
![]() |
furuta_pendulum_hardware package from furuta_pendulum repofuruta_pendulum_bringup furuta_pendulum_control_toolbox furuta_pendulum_de furuta_pendulum_description furuta_pendulum_drake furuta_pendulum_gazebo furuta_pendulum_hardware furuta_pendulum_model furuta_pendulum_ocs2 furuta_pendulum_ocs2_ros furuta_pendulum_rl |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | GPLv3 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | LQR, MPC and DRL approaches to control the Furuta pendulum. |
Checkout URI | https://github.com/macstepien/furuta_pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-14 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | control robotics ros inverted-pendulum |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Maciej Stępień
Authors
- Maciej Stępień
Setup
pip install odrive==0.51
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="0d[0-9][0-9]", MODE="0666"' | sudo tee /etc/udev/rules.d/91-odrive.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
export PATH=$PATH:~/.local/bin
pip install ipython==8.10
Motor configuration
odrv0.erase_configuration()
odrv0.config.brake_resistance=2.0
odrv0.axis0.controller.config.vel_limit = 40.0
odrv0.axis0.motor.config.current_lim = 12.0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27/80.0
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.motor.config.calibration_current = 1.0
odrv0.axis0.config.calibration_lockin.current = 1.0
odrv0.axis0.encoder.config.bandwidth = 1000.0
odrv0.axis1.encoder.config.bandwidth = 1000.0
odrv0.axis0.encoder.config.cpr = 8192
odrv0.axis0.encoder.config.use_index = True
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.encoder.config.pre_calibrated = True
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.startup_encoder_index_search = True
odrv0.save_configuration()
dump_errors(odrv0)
odrv0.axis0.controller.config.pos_gain = 35.0
odrv0.axis0.controller.config.vel_gain = 0.14083333313465118
odrv0.axis0.controller.config.vel_integrator_gain = 7.041666507720947
IMPORTANT - don’t copy all commands at once, do it one after the other
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
odrv0.axis0.controller.config.input_mode = INPUT_MODE_PASSTHROUGH
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.controller.input_pos = 0.0
odrv0.axis0.controller.start_anticogging_calibration()
import matplotlib
matplotlib.use('TkAgg')
start_liveplotter(lambda:[odrv0.axis0.encoder.pos_estimate, odrv0.axis0.controller.pos_setpoint])
Wait until odrv0.axis0.controller.config.anticogging.calib_anticogging == False
odrv0.axis0.controller.config.anticogging.pre_calibrated = True
Additionally can be checked odrv0.axis0.controller.config.anticogging.anticogging_enabled
odrv0.save_configuration()
Configuration is finished.
Usage
``` odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL odrv0.axis0.controller.input_torque = 0.0
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
launch | |
launch_ros | |
xacro | |
robot_state_publisher |