Usage
Installation
To use rlPx4Controller , first install it using pip:
# Install Eigen. The recommended version is 3.3.7
sudo apt install libeigen3-dev
pip install pybind11 pybind11_stubgen
# install rlPx4Controller
pip install -e .
bash stubgen.sh
Single Quadcopter Test
For example:
from rlPx4Controller.pyControl import PosControl,AttiControl,RateControl,Mixer
controller.pos_ctl.set_status(pos_world,velocity_world,angular_velocity_world,rot_quat,current_time-last_rate_control_time)
atti_thrust_sp = controller.pos_ctl.update(exp_pos,np.array([0,0,0]),np.array([0,0,0]),float(yaw))
print("hover_thrust {} ".format(controller.pos_ctl.get_hover_thrust()))
rate_sp = controller.atti_ctl.update(atti_thrust_sp[:4],rot_quat)
controller.rate_ctl.set_q_world(rot_quat)
thrust_3 = controller.rate_ctl.update(rate_sp,angular_velocity_world,np.array([0,0,0]),current_time-last_rate_control_time)
thrust = controller.mix_ctl.update(np.array([thrust_3[0],thrust_3[1],thrust_3[2],atti_thrust_sp[4]]))
Multi Quadcopter Test
Since the python for loop is too slow, I chose to implement it in the pyParallelControl package.
For example:
from rlPx4Controller.pyParallelControl import ParallelPosControl
parallel_rate_ctl = ParallelRateControl(envs_num)
while True:
parallel_rate_ctl.set_q_world(root_rot_cpu)
cmd = parallel_rate_ctl.update(rate_sp,rate,dt)