fjp / frenet Goto Github PK
View Code? Open in Web Editor NEWTransform Frenet (s,d) to local Cartesian (x,y) coordinates.
Home Page: https://fjp.at/posts/optimal-frenet/
License: MIT License
Transform Frenet (s,d) to local Cartesian (x,y) coordinates.
Home Page: https://fjp.at/posts/optimal-frenet/
License: MIT License
frenet/python/src/cubic_spline_planner.py
Line 167 in a7e8dd5
It seems that the divisor should be
Hello,
I have some doubts in the FRT2Cart function in MATLAB.
nNextRefPoint = 0;
while ((i_fS > i_faRefRunLength(nNextRefPoint+1)) && (nNextRefPoint < length(i_faRefRunLength)))
nNextRefPoint = nNextRefPoint + 1;
end
nPrevRefPoint = nNextRefPoint-1;
Can you please explain me what these variables mean? And what exactly is happening here?
Hi @fjp , I'm working on my own version of this algorithm to generate a local path to avoid obstacles.
Currently I have a problem which I have no idea about how to fix. Here is the image to show my problem, the pink path is the original reference path, the left blue path is the generated path to avoid the obstacle lies on the original path, and the red circle marks my problem. When I try to convert my path from Frenet coordinate (s, d) to Cartesian coordinate (x, y), sometimes the path will suddenly turn back like the red circle part shows.
I use the spline function to map between s-to-x and s-to-y according to the original reference path. And I calculate the new path point which has d distance away from the original reference path and is perpendicular to the tangent direction of the relative point on the original path. I think the problem is coming from the curvature of the original path, but I have no idea about how to fix it. Can you give me some suggestion?
Hi Franz,
I would first like to thank you for building such a repo. I was trying out the transformation.m file. At the end of the code, we compare transform from Cartesian to Frenet and back to Cartesian. The results are not the same and we have some error in both the x and y positions. I thought this could be due to the ds=0.1. However, reducing ds by orders of magnitude did not help much in reducing the error. Is there any specific reason for this or is there a bug in the code that we need to look for?
Thanks,
Iman
Hello Franz,
Would you like to upload the missing picture to complete the README, please? That would be much helpful.
Thank you
Yang
python main.py
['/home/ugv-yu/bryan/Frenet/frenet/python', '/usr/local/lib/python2.7/dist-packages/cryptography-2.4.2-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/dist-packages/cffi-1.11.5-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/dist-packages/asn1crypto-0.24.0-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/idna-2.8-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/pycparser-2.19-py2.7.egg', '/home/ugv-yu/catkin_ws/devel/lib/python2.7/dist-packages', '/home/ugv-yu/Autoware/ros/devel/lib/python2.7/dist-packages', '/opt/ros/kinetic/lib/python2.7/dist-packages', '/usr/share/qgis/python', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/ugv-yu/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/wx-3.0-gtk2']
['/home/ugv-yu/bryan/Frenet/frenet/python', '/usr/local/lib/python2.7/dist-packages/cryptography-2.4.2-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/dist-packages/cffi-1.11.5-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/dist-packages/asn1crypto-0.24.0-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/idna-2.8-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/pycparser-2.19-py2.7.egg', '/home/ugv-yu/catkin_ws/devel/lib/python2.7/dist-packages', '/home/ugv-yu/Autoware/ros/devel/lib/python2.7/dist-packages', '/opt/ros/kinetic/lib/python2.7/dist-packages', '/usr/share/qgis/python', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/ugv-yu/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/wx-3.0-gtk2']
Create Frenet Main Window
('create DynamicsWidget', <PySide2.QtWidgets.QWidget object at 0x7f231cc6df80>)
(u'new MplWidget', <PySide2.QtWidgets.QWidget object at 0x7f231cc6df80>)
Traceback (most recent call last):
File "main.py", line 24, in <module>
oFrenetMainWindow = fmw.FrenetMainWindow()
File "/home/ugv-yu/bryan/Frenet/frenet/python/gui/frenet_main_window.py", line 7, in __init__
self.setupUi(self)
File "/home/ugv-yu/bryan/Frenet/frenet/python/gui/ui/frenet_main_window_ui.py", line 25, in setupUi
self.dynamics_widget = DynamicsWidget(self.centralwidget)
File "/home/ugv-yu/bryan/Frenet/frenet/python/gui/widgets/dynamics_widget.py", line 18, in __init__
super(DynamicsWidget, self).__init__(self.oFig, parent)
File "/home/ugv-yu/bryan/Frenet/frenet/python/gui/widgets/mplwidget.py", line 25, in __init__
self.canvas = MplCanvas(i_oFig) # Create canvas object
File "/home/ugv-yu/bryan/Frenet/frenet/python/gui/widgets/mplwidget.py", line 17, in __init__
Canvas.setSizePolicy(self, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
TypeError: arguments did not match any overloaded call:
QWidget.setSizePolicy(QSizePolicy): argument 2 has unexpected type 'PySide2.QtWidgets.QSizePolicy.Policy'
QWidget.setSizePolicy(QSizePolicy.Policy, QSizePolicy.Policy): argument 2 has unexpected type 'PySide2.QtWidgets.QSizePolicy.Policy'
When I use python main.py in terminal, the above is unfolded there. I think there is an mismatch for PySide2 library maybe. The following is shown in my terminal.
>>> import PySide2
>>> print(PySide2.__version__)
2.0.0~alpha0
Some polynomial coefficients are wrong in cQuarticPoly.m.
It should be:
line 30: x = obj.c(2) + 2 * obj.c(3).*t + 3 * obj.c(4).*t.^2 + 4 * obj.c(5).*t.^3;
line 34: x = 2 * obj.c(3) + 6 * obj.c(4).*t + 12 * obj.c(5).*t.^2;
Hi! Just started reading Readme file. It seems that there is a corrupted image file under Transformation headline possibly named: frame-components.jpg file.
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.