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

Pid controller #27

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ catkin_package()
cs_add_library(${PROJECT_NAME}
# Modules
src/frame_converter.cpp
src/pid_controller.cpp
src/online_simulator/simulator.cpp
src/online_simulator/sensor_timer.cpp
src/simulator_processing/processor_factory.cpp
Expand Down
3 changes: 3 additions & 0 deletions app/airsim_simulator_node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ int main(int argc, char** argv) {
ros::NodeHandle nh("");
ros::NodeHandle nh_private("~");
signal(SIGINT, sigintHandler);
LOG(INFO) << "Setting up Airsim.";

ros::Duration(1.0).sleep();
the_simulator =
std::make_unique<unreal_airsim::AirsimSimulator>(nh, nh_private);

Expand Down
3 changes: 2 additions & 1 deletion app/tools/parse_config_to_airsim.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ def parse(self):
def write_target_file(self):
j = json.dumps(self.new_cfg, indent=2)
f = open(self.target_file_path, 'w')
print >> f, j
#print >> f, j
print(j, file=f)
f.close()
self.log("Wrote config to target file '%s'." % self.target_file_path)

Expand Down
64 changes: 64 additions & 0 deletions cfg/airsim.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
vehicle_name: airsim_drone
state_refresh_rate: 100
ClockSpeed: 1
velocity: 0.5
ViewMode: Fpv # Manual, NoDisplay, Fpv
publish_sensor_transforms: true

SegmentationSettings:
InitMethod: None # CommonObjectsRandomIDs
MeshNamingMethod: OwnerName # StaticMeshName, OwnerName
OverrideExisting: false

sensors:
Scene_cam:
sensor_type: Camera
image_type: Scene
rate: 10
CaptureSettings:
Width: 640
Height: 480
FOV_Degrees: 90
AutoExposureSpeed: 100
AutoExposureBias: 0
AutoExposureMaxBrightness: 0.64
AutoExposureMinBrightness: 0.03
MotionBlurAmount: 0
TargetGamma: 1.0
ProjectionMode: ""
OrthoWidth: 5.12
T_B_S:
- [1, 0, 0, 0.3]
- [0, 1, 0, 0]
- [0, 0, 1, 0]
- [0, 0, 0, 1]

Depth_cam:
sensor_type: Camera
image_type: DepthPlanar
rate: 10
pixels_as_float: true
CaptureSettings:
Width: 640
Height: 480
FOV_Degrees: 90
AutoExposureSpeed: 100
AutoExposureBias: 0
AutoExposureMaxBrightness: 0.64
AutoExposureMinBrightness: 0.03
MotionBlurAmount: 0
TargetGamma: 1.0
ProjectionMode: ""
OrthoWidth: 5.12
T_B_S:
- [1, 0, 0, 0.3]
- [0, 1, 0, 0]
- [0, 0, 1, 0]
- [0, 0, 0, 1]


processors:
RGB_pcl:
processor_type: DepthToPointcloud
depth_camera_name: Depth_cam
color_camera_name: Scene_cam
245 changes: 245 additions & 0 deletions cfg/visualization/visualization.rviz
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
Panels:
- Class: rviz/Displays
Help Height: 78
Name: Displays
Property Tree Widget:
Expanded:
- /Global Options1
- /Status1
- /PointCloud21
- /MarkerArray1
- /MarkerArray2
- /PointCloud22
Splitter Ratio: 0.5
Tree Height: 456
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
Expanded:
- /2D Pose Estimate1
- /2D Nav Goal1
- /Publish Point1
Name: Tool Properties
Splitter Ratio: 0.5886790156364441
- Class: rviz/Views
Expanded:
- /Current View1
Name: Views
Splitter Ratio: 0.5
- Class: rviz/Time
Experimental: false
Name: Time
SyncMode: 0
SyncSource: Image
Preferences:
PromptSaveOnExit: true
Toolbars:
toolButtonStyle: 2
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz/Grid
Color: 160; 160; 164
Enabled: false
Line Style:
Line Width: 0.029999999329447746
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: false
- Alpha: 1
Class: rviz/Axes
Enabled: false
Length: 1.5
Name: Axes
Radius: 0.05000000074505806
Reference Frame: <Fixed Frame>
Value: false
- Alpha: 1
Class: rviz/Axes
Enabled: true
Length: 0.5
Name: Axes
Radius: 0.15000000596046448
Reference Frame: airsim_drone
Value: true
- Alpha: 1
Autocompute Intensity Bounds: true
Autocompute Value Bounds:
Max Value: 10
Min Value: -10
Value: true
Axis: Z
Channel Name: intensity
Class: rviz/PointCloud2
Color: 255; 255; 255
Color Transformer: RGB8
Decay Time: 0
Enabled: true
Invert Rainbow: false
Max Color: 255; 255; 255
Max Intensity: 4096
Min Color: 0; 0; 0
Min Intensity: 0
Name: PointCloud2
Position Transformer: XYZ
Queue Size: 10
Selectable: true
Size (Pixels): 3
Size (m): 0.07999999821186066
Style: Boxes
Topic: /occupancy_pointcloud
Unreliable: false
Use Fixed Frame: true
Use rainbow: true
Value: true
- Class: voxblox_rviz_plugin/VoxbloxMesh
Enabled: false
Name: VoxbloxMesh
Queue Size: 10
Topic: /voxblox_node/mesh
Unreliable: false
Value: false
- Class: rviz/Marker
Enabled: true
Marker Topic: /path_visualizer/path
Name: Marker
Namespaces:
{}
Queue Size: 100
Value: true
- Class: rviz/Image
Enabled: true
Image Topic: /airsim_drone/Id_corrected
Max Value: 1
Median window: 5
Min Value: 0
Name: Image
Normalize Range: true
Queue Size: 2
Transport Hint: raw
Unreliable: false
Value: true
- Class: rviz/MarkerArray
Enabled: false
Marker Topic: /voxblox_node/occupied_nodes
Name: MarkerArray
Namespaces:
{}
Queue Size: 100
Value: false
- Class: rviz/MarkerArray
Enabled: false
Marker Topic: /trajectory_visualization
Name: MarkerArray
Namespaces:
{}
Queue Size: 100
Value: false
- Alpha: 1
Autocompute Intensity Bounds: true
Autocompute Value Bounds:
Max Value: 10
Min Value: -10
Value: true
Axis: Z
Channel Name: intensity
Class: rviz/PointCloud2
Color: 255; 255; 255
Color Transformer: ""
Decay Time: 0
Enabled: false
Invert Rainbow: false
Max Color: 255; 255; 255
Max Intensity: 4096
Min Color: 0; 0; 0
Min Intensity: 0
Name: PointCloud2
Position Transformer: ""
Queue Size: 10
Selectable: true
Size (Pixels): 3
Size (m): 0.009999999776482582
Style: Flat Squares
Topic: /voxblox_node/traversable
Unreliable: false
Use Fixed Frame: true
Use rainbow: true
Value: false
Enabled: true
Global Options:
Background Color: 255; 255; 255
Default Light: true
Fixed Frame: world
Frame Rate: 30
Name: root
Tools:
- Class: rviz/Interact
Hide Inactive Objects: true
- Class: rviz/MoveCamera
- Class: rviz/Select
- Class: rviz/FocusCamera
- Class: rviz/Measure
- Class: rviz/SetInitialPose
Theta std deviation: 0.2617993950843811
Topic: /initialpose
X std deviation: 0.5
Y std deviation: 0.5
- Class: rviz/SetGoal
Topic: /move_base_simple/goal
- Class: rviz/PublishPoint
Single click: true
Topic: /clicked_point
Value: true
Views:
Current:
Class: rviz/Orbit
Distance: 13.82581901550293
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Field of View: 0.7853981852531433
Focal Point:
X: 3.2142393589019775
Y: 0.4664399027824402
Z: -0.8909653425216675
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 0.4147963523864746
Target Frame: <Fixed Frame>
Yaw: 3.0186057090759277
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 986
Hide Left Dock: false
Hide Right Dock: false
Image:
collapsed: false
QMainWindow State: 000000ff00000000fd0000000400000000000001560000033cfc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d00000253000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d0061006700650100000296000000e30000001600ffffff000000010000010f0000033cfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d0000033c000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000006480000003efc0100000002fb0000000800540069006d0065010000000000000648000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000003d70000033c00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
collapsed: false
Tool Properties:
collapsed: false
Views:
collapsed: false
Width: 1608
X: 1992
Y: 27
2 changes: 2 additions & 0 deletions include/unreal_airsim/frame_converter.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@ class FrameConverter {

void rosToAirsim(Eigen::Vector3d* point) const;
void rosToAirsim(geometry_msgs::Point* point) const;
void rosToAirsim(geometry_msgs::Vector3* vector) const;
void rosToAirsim(Eigen::Quaterniond* orientation) const;
void rosToAirsim(geometry_msgs::Quaternion* orientation) const;
void rosToAirsim(geometry_msgs::Pose* pose) const;
void rosToAirsim(geometry_msgs::Transform* pose) const;

// transformations
void transformPointAirsimToRos(double* x, double* y, double* z) const;
Expand Down
Loading